测试一
编写一个方法,使用以上算法生成指定数目(比如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("\nThe 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;
}
}
通过测试发现输出的结果不同。虽然两个方法名是相同的,但是其参数类型并不相同,所以当参数类型不同时也完成正确的调用。
参数不同,方法不会出现二义性。
参数类型,数量,以及参数类型顺序不同都不会出现二义性。