学习目标
小学生在刚刚开始学习数学运算的时候,需要不断地进行反复大量的练习,才能够迅速掌握这部分内容。下面开发一个简单的加法学习程序,能够产生加法运算让学生来学习提高。
编写程序如下:
1 package lesson5;
2
3 public class Operation1 {
4 int number1;
5 int number2;
6 void operate(int number1,int number2)
7 {
8 this.number1=number1;
9 this.number2=number2;
10 System.out.println(number1+"+"+number2+"=");
11 }
12 void showTitle()
13 {
14 System.out.println("请计算如下运算结果:");
15 }
16 public static void main(String args[])
17 {
18 Operation1 o1=new Operation1();
19 o1.showTitle();
20 o1.operate(1,2);
21 }
22 }
本程序中,定义了一个Operation1类。类中定义了两个int类型的变量number1和number2,分别用来存储参与运算的两个数字。第6~11行定义了一个operate函数用来产生一个加法运算。方法体内,第8、9行首先应用方法的参数对当前对象的number1和number2进行赋值,第11行完成了运算式的输出。第12~15行定义了方法showTitle,方法体内的14行打印了加法运算的提示信息。第16~22行是main函数,函数体内第18行首先定义了一个对象o1,接下来第19行调用了showTitle方法,最后o1调用了operate方法。
编译、运行程序,将得到如下结果:
请计算如下运算结果:
1+2=
上述程序在使用中如果需要产生加法算式,需要事先确定两个加数,这样操作起来相对比较麻烦,而在实际使用中通常希望能够自动产生两个加数。
如果希望自动产生加数,就要用到随机数。
在Java语言中类Random用来产生随机数。因此,可以先用类Random生产一个对象,再通过这个对象生成随机数。Random在Java中完成的路径是java.util.Random,因此Random对象生成方式为:
java.util.Random 对象名=new java.util.Random();
可以看到如果这样定义比较麻烦,因此引入import语句。在程序的开始部分应用import引入java.util.Random,这样每次用到Random的时候,就可以直接使用了。例如:
Random 对象名= Random();
在Random的方法里面经常用到是nextInt(int n)方法。该方法返回一个伪随机数,它是从此随机数生成器的序列中取出的在 0(包括)和指定值(不包括)之间均匀分布的 int值。
修改程序如下:
1 package lesson5;
2 import java.util.Random;
3
4 public class Operation2 {
5 int number1;
6 int number2;
7 void operate()
8 {
9 Random r=new Random();
10 this.number1=r.nextInt(10);
11 this.number2=r.nextInt(10);
12 System.out.println(number1+"+"+number2+"=");
13 }
14 void showTitle()
15 {
16 System.out.println("请计算如下运算结果:");
17 }
18 public static void main(String args[])
19 {
20 Operation2 o1=new Operation2();
21 o1.showTitle();
22 o1.operate();
23 }
24 }
程序中,第2行引入了java.util.Random,以保证在程序中可以直接使用Random类来定义对象。第7~13行定义了operate方法,程序体内第9行定义了一个Random类的对象r,在第10、11行分别应用对象r调用nextInt(int)方法对number1和number2进行赋值,这样每次得到的number1和number2都是不同的值。
第18~24行是main方法,方法中应用新建立的对象o1调用oerate()方法实现运算式的输出。
编译、运行程序,程序运行结果为:
请计算如下运算结果:
0+3=
上述程序只是给出了算式,并没有给出运算结果,因此无法让学习者校验运算结果的正确与否。因此,为了提高学习效果,应该给出运算结果。这就需要计算上述的算式结果,并能够将结果返回。这就需要定义具有返回值的函数。具有返回值的函数定义方式为:
返回值数据类型 函数名(参数表)
{
语句块;
return 返回值;
}
修改程序如下:
1 package lesson5;
2 import java.util.Random;
3
4 public class Operation3 {
5 int number1;
6 int number2;
7 int operate()
8 {
9 Random r=new Random();
10 this.number1=r.nextInt(10);
11 this.number2=r.nextInt(10);
12 System.out.println(number1+"+"+number2+"=");
13 return number1+number2;
14 }
15 void showTitle()
16 {
17 System.out.println("请计算如下运算结果:");
18 }
19 void showResult(int result)
20 {
21 System.out.println("运算结果为:"+result);
22 }
23 public static void main(String args[])
24 {
25 Operation3 o1=new Operation3();
26 int result;
27 o1.showTitle();
28 result=o1.operate();
29 o1.showResult(result);
30 }
31 }
程序中第7~14行定义了一个具有返回值的方法operate(),方法体内第13行返回了运算的结果。第19~22行定义了一个showResult(int result)方法,用于显示运算结果。程序中第23~30行是main()方法,方法中第26行定义了一个int型变量result用来保存运算结果,第28行将运算结果的返回值赋给变量result,第29行将result作为参数赋给方法showResult,用于显示运算结果。
程序运行结果为:
请计算如下运算结果:
8+9=
运算结果为:17
当调用带有返回的方法时,方法的返回值可以直接作为其他的方法来进行使用。例如上述程序中可如下方式调用:
o1.showResult(o1.operate());
修改后的程序如下:
1 package lesson5;
2 import java.util.Random;
3
4 public class Operation3 {
5 int number1;
6 int number2;
7 int operate()
8 {
9 Random r=new Random();
10 this.number1=r.nextInt(10);
11 this.number2=r.nextInt(10);
12 System.out.println(number1+"+"+number2+"=");
13 return number1+number2;
14 }
15 void showTitle()
16 {
17 System.out.println("请计算如下运算结果:");
18 }
19 void showResult(int result)
20 {
21 System.out.println("运算结果为:"+result);
22 }
23 public static void main(String args[])
24 {
25 Operation3 o1=new Operation3();
26 o1.showTitle();
27 o1.showResult(o1.operate());
28 }
29 }