2020.10.4(动手动脑)

动手动脑

生成随机数 

 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+"\t");
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("\nThe 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的数在计算机中表示负数(补码表示法),如果再增加的话,应该又会变成正数了。

posted @ 2020-10-04 21:35  敲敲代代码码  阅读(175)  评论(0编辑  收藏  举报