目录

  • 1 项目一 开发第一个Java程序
    • 1.1 任务1 搭建Java开发环境
    • 1.2 任务2 使用记事本开发Java程序
    • 1.3 任务3 使用Eclipse开发Java程序
    • 1.4 编程实践
  • 2 项目二 开发简单的Java应用
    • 2.1 任务1 打印超市购物小票
    • 2.2 任务2 掷色子游戏
    • 2.3 任务3 抽奖游戏
    • 2.4 编程实践
  • 3 项目三 开发面向对象的Java应用
    • 3.1 类和对象的创建
    • 3.2 类的封装
    • 3.3 构造方法
    • 3.4 对象数组
    • 3.5 编程实践
  • 4 项目四 Java API应用
    • 4.1 任务1 加密/解密工具
    • 4.2 编程实践
  • 5 项目五 Java集合的应用
    • 5.1 点菜系统
    • 5.2 编程实践
任务3 抽奖游戏

主要知识点:

一、方法

1、什么是方法

    假设有一个游戏程序,程序在运行过程中,要不断地发射炮弹。发射炮弹的动作需要编写100行的代码,在每次实现发射炮弹的地方都需要重复地编写这100行代码,这样程序会变得很臃肿,可读性也非常差。

    为了解决代码重复编写的问题,可以将发射炮弹的代码提取出来放在一个{}中,并为这段代码起个名字,这样在每次发射炮弹的地方通过这个名字来调用发射炮弹的代码就可以了。

    上述过程中,所提取出来的代码可以被看作是程序中定义的一个方法,程序在需要发射炮弹时调用该方法即可。

2、方法的声明和调用

    声明一个方法的语法格式如下:

            修饰符 返回值类型 方法名([参数类型 参数名1,参数类型 参数名2,...]);

    调用方法的格式如下:

            参数名([实际参数1,实际参数2,...]);


修饰符:是对访问权限的限定,例如,public、static都是修饰符

返回值类型:用于限定方法返回值的数据类型

参数类型:用于限定调用方法时传入参数的数据类型

参数名:是一个变量,用于接收调用方法时传入的数据

return关键字:用于结束方法以及返回方法指定类型的值

返回值:被return语句返回的值,该值会返回调用者

例如:定义一个求矩形面积的方法getArea(),在main()中调用方法并打印结果。

    public class Sample3_1{

        public static void main(String[] args){

              int area=getArea(3,5);

          }

        public static int getArea(int x,int y){

            int s=x*y;

            return s;

        }

}

3、方法的重载

    Java允许在一个程序中定义多个名称相同的方法,但是参数的类型或个数必须不同,这就是方法的重载。

    例如:定义方法实现两个整数相加、两个小数相加和两个字符串的连接。

     public class Sample3_1{

        public static void main(String[] args){

              int sum1=add(3,5);

              int sum2=add(1.3,2.5);

              String sum3=add("Hello"," Java");

          }

        public static int add(int x,int y){

            int sum=x+y;

            return sum;

        }

     public static double add(double x, double y){

           double sum=x+y;

            return sum;

        }

     public static String add(String x,String  y){

           String sum=x+y;

            return sum;

        }

}   

二、数组

1、一维数组

Java 中操作数组需要四个步骤:

(1) 声明数组

语法:  数据类型[ ] 数组名;或者   数据类型 数组名[ ];

其中,数组名可以是任意合法的变量名,如:

注意:声明数组变量时不能指定数组长度,因为声明数组变量时并不分配数组对象的内存空间。数组的长度需要在创建数组对象时指定。

(2)创建数组对象

使用new操作符为数组对象分配内存空间,也就是指定数组中最多可存储多少个元素。

语法:  数组名 = new  数据类型 [ 数组长度 ];

其中,数组长度就是数组中能存放元素的个数,如:

话说,我们也可以将上面的两个步骤合并,在声明数组的同时为它分配空间,如:

数组对象中的每个元素具有默认值。

  (3)初始化数组元素

动态初始化:创建数组对象之后,再给数组元素赋值。

int[] scores=new int[4];

scores[0]=89;

scores[1]=79;

scores[2]=84;

scores[3]=68;

静态初始化:创建数组对象的同时,就给数组元素赋值。

int[] scores={89,79,84,68};

(4)访问数组中数据

我们可以对赋值后的数组进行操作和处理,如获取并输出数组中元素的值

实际开发中我们经常使用循环控制数组成员的操作。

(1)使用for语句操作数组元素

for(int i=0;i<scores.length;i++)

    System.out.print(scores[i]+" ");

注意:

    1)每个数组都有一个 length 属性,用于保存数组的长度。

    2)数组的索引从 0 开始,第一个数组元素的索引值为 0,最后一个数组元素的索引值为 length-1。

(2)使用foreach语句操作操作数组元素

JDK 1.5 引进了一种新的循环类型,被称为 foreach 循环或者加强型循环,它能在不使用下标的情况下遍历数组。

for(int element:scores)

    System.out.print(element+" ");

2、二维数组

所谓二维数组,可以简单的理解为是一种“特殊”的一维数组,它的每个数组空间中保存的是一个一维数组。

那么如何使用二维数组呢,步骤如下:

(1)声明数组并分配空间

或者

如:

(2) 初始化

1)直接为每一维分配空间,例如

int a[][] = new int[2][3];

a[0][0]=11;a[0][1]=12;a[0][2]=13;

a[1][0]=21;a[1][1]=22;a[1][2]=23;

2) 从最高维开始,分别为每一维分配空间,例如: 

String s[][] = new String[2][]; 

s[0] = new String[2]; 

s[1] = new String[3]; 

s[0][0] = new String("Good");s[0][1] = new String("Luck"); 

s[1][0] = new String("to");s[1][1] = new String("you");s[1][2] = new String("!");

(3)访问数组元素

二维数组的访问和输出同一维数组一样,只是多了一个下标而已。在循环输出时,需要里面再内嵌一个循环,即使用二重循环来输出二维数组中的每一个元素。如:

 

运行结果: