java课堂动手测试2

测试一

编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数。

程序源代码

import java.util.Random;
import java.util.Scanner;

public class RandomMod {
public int suiji(int n)
{
int a=16807; //根据公式设置a的值
int m=(int)Math.pow(2, 31)-1; //设置m的值
int x=Math.floorMod(a*n, m); //利用mod生成随机数
return x;
}
public static void main( String args[] )
{
RandomMod x=new RandomMod();
Random ran=new Random();
int number=ran.nextInt(10);         //随机生成初始变量
Scanner input=new Scanner(System.in);
System.out.println("请输入想要生成随机数的数量:");
int num=input.nextInt(); //输入生成随机数数量
for(int i=1;i<=num;i++)
{
number=x.suiji(number);
System.out.print(x.suiji(number)+" ");
if(i%10==0) //10个随机数一行
System.out.println();
}

}

}

用户通过输入数量生成不同的随机数。

测试结果

课堂测试二

对比代码,


public class MethodOverload {
public static void main(String[] args) {
System.out.println("The square of integer 7 is " + square(7));
System.out.println(" The square of double 7.5 is " + square(7.5));
}

public static int square(int x) {
return x * x;
}

public static double square(double y) {
return y * y;
}

}

通过测试发现输出的结果不同。虽然两个方法名是相同的,但是其参数类型并不相同,所以当参数类型不同时也完成正确的调用。

参数不同,方法不会出现二义性。

参数类型,数量,以及参数类型顺序不同都不会出现二义性。

原文地址:https://www.cnblogs.com/wys-373/p/7660705.html