1 package opinion; 2 import java.util.*; 3 public class ExactRandom 4 { 5 public static void main(String []args) 6 { 7 String output= ""; 8 int i=0; 9 Scanner scanner=new Scanner(System.in); 10 System.out.println("请输入产生随机数的个数"); 11 int num=scanner.nextInt(); 12 //x(n+1)=(ax(n)+c)mod m; 13 do 14 { 15 output+=ShouRandom(i)+" "; 16 i++; 17 if(i%5==0) 18 output+=" "; 19 }while(i!=num); 20 System.out.println(output); 21 } 22 public static int ShouRandom(int n) 23 { 24 int a,c,m,x; 25 a=16807; 26 c=0; 27 m=2147483647;//int.MaxValue 28 if(n==0) 29 { Random r=new Random(); 30 x=r.nextInt(); 31 } 32 else 33 {x=(a*ShouRandom(n-1)+c)%m;} 34 return x; 35 } 36 }
结果截图:
执行结果:
上述示例代码展示了Java的“方法重载(overload)”特性。
满足以下条件的两个或多个方法构成“重载”关系:
(1)方法名相同;
(2)参数类型不同(本范例展现),参数个数不同,或者是参数类型的顺序不同。
注意:方法的返回值不作为方法重载的判断条件。
练习: 查看一下JDK中System.out.println()方法,你发现了什么?
发现了参数列表中可以有不同的参数类型。