Java OverLoad(方法重载)

一、什么是方法重载
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:12
name:jack

age:23
name: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地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值