动手动脑
生成随机数
1 import java.util.*; 2 public class random{ 3 public static void main(String[] args) { 4 int m; 5 System.out.print("请输入生成随机数的个数:"); 6 Scanner con=new Scanner(System.in); 7 m=con.nextInt(); 8 int seed=(int)(Math.random()*99+1); 9 int t=0; 10 for(int i=0;i<m;i++) { 11 seed=((16807*seed)*2147483647); 12 t++; 13 System.out.print(seed+" "); 14 if(t%5==0) System.out.println(); 15 } 16 } 17 }
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
方法重载
1 public class MethodOverload { 2 3 public static void main(String[] args) 4 { 5 System.out.println("The square of integer 7 is " + square(7)); 6 System.out.println(" The square of double 7.5 is " + square(7.5)); 7 } 8 9 public static int square(int x) 10 { 11 return x * x; 12 } 13 14 public static double square(double y) 15 { 16 return y * y; 17 } 18 }
发现:两个方法名相同,参数类型不同,返回类型也不同;
重载的条件:
(1)方法名相同;(2)参数类型不同,参数个数不同,或者是参数类型的顺序不同。
注意:方法的返回值不作为方法重载的判断条件。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
练习: 查看一下JDK中System.out.println()方法,你发现了什么?
System.out.println()方法中参数表内可输入多种不同类型。
原因:为了让编写代码时输出不同类型数据时更加方便,所以把输出的方法都用同名重载或方法重载。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
为什么会出现负数?
由于计算机使用固定的位数来保存数值,因此,能处理的数值大小是有限的,当要处理的数值超过了这一范围时,计算机将会自动截断数值的二进制表示为它所能处理的最多位数,这将导致错误的处理结果。
int型,即有符号整数,20的阶乘大于计算机能表示的最大正整数,就会变成负数,比如说16为整数,最打整数应该是0111111111111111,当超过这个范围后,就会向最高为进1,变为1000000000000000,最高位为1的数在计算机中表示负数(补码表示法),如果再增加的话,应该又会变成正数了。