Java OverLoad(方法重载)

来源:互联网 发布:如何入驻淘宝服务商 编辑:程序博客网 时间:2024/06/05 06:48

一、什么是方法重载
1、定义: 在Java程序中,同一个类可以有两个或者多个方法名字相同,只要参数不同即可,则称为方法的重载。

注意:
1) 必须是在同一个类中
2) 方法名相同
3) 方法参数的个数、顺序或类型不同
4) 与方法的修饰符或返回值没有关系

2、如何区分调用哪个方法
当调用被重载的方法时, Java 会根据参数的个数和类型来判断应该调用哪个重载方法,参数完全匹配的方法将被执行

备注: OC语言是没有方法重载一说的,因为同一个类里面不允许出现相同方法名的方法。
例如:

- (void)test:(int)number;- (void)test:(float)number;这样编译是不允许通过的,因为可以看出OC可以通过参数个数实现函数重载的。

3、主函数可以被重载么 ?

主函数 : 是一个特殊的函数,是固定格式的,作为程序入口,可以被jvm识别。

public static void main(String[] args){}/*main  不是关键字,是特殊的一个单词而已,能够被jvm识别。主函数当然是可以被重载,但是即使重载了,Jvm还是会识别到真正的主函数。JVM 在调用 main 函数是,传入的是new String[0]; 那么如何验证呢 ?class MainDemo{public static void main(String[] args){// 调用 MainTest 的主函数String[] arr = {"1","2"};MainTest.main(arr);}}class MainTest{public static void main(String[] args){for(String value : args){system.out.println(value);}}}*/

二、方法重载的一些例子
创建一个类文件,命名为MethodOverLoad,并勾选入口函数。演示print方法重载。
1、定义一个无参无返回值的print方法

public  void print(){System.out.println("无参的print方法");}

2、定义一个有参数无返回值的print方法

public void print(int age,String name){System.out.println("age:"+age);System.out.println("name:"+name);}

3、定义一个有参数有返回值的print方法

public void print(int age,String name){System.out.println("age:"+age);System.out.println("name:"+name);}

4、定义一个有参数有返回值的print方法

public void print(String name,int age){System.out.println("age:"+age);System.out.println("name:"+name);}

在入口函数函数中调用如下:

public static void main(String[] args) {MethodOverLoad hello  = new  MethodOverLoad();hello.print();hello.print(12, "jack");System.out.println();hello.print("rose", 23);}

输出结果:

无参的print方法age:12name:jackage:23name:rose

三、随机数
1、通过 (int)(Math.random() * 100) 生成 100 以内的随机数
2、Math 类是用于进行算术操作的类,Math.random() 生成 0–1 的浮点数。
需求:编写一个JAVA程序,创建指定长度的 int 型数组,并生成 100 以内随机数为数组中的每个元素赋值,然后输出数组。

实现:
自定义方法如下

public int[]  getRandomNumver(int length){int[] numbers = new int[length];for(int i = 0;i < length;i++){    numbers[i] = (int)(Math.random()*100);}    return numbers;     }

函数入口调用

public static void main(String[] args) {MethodPartise hello  =  new MethodPartise();int[] nums = hello.getRandomNumver(5);System.out.println(Arrays.toString(nums));}

输出结果:

[33, 28, 31, 40, 26]

demo地址

0 0