java基础学习菜鸟入门学习第七天——java中方法的重载

Java基础——重载

3.3重载

3.3.1什么是重载?
  • 方法重载:指同一个类中定义有相同的方法名,但参数列表不同的多个方法,调用时根据不同的参数列表来选择调用对应的方法。
3.3.2重载的条件

​ (1)必须要在同一个类中;

​ (2)方法名相同,参数列表中的参数个数、顺序或类型不同;

​ (3)与方法名的修饰符或返回值没有关系。

  • 附加知识:在jvm中确定一个方法的方式是:返回值类型+方法名称+参数列表。java编程规范确定一个方法是:返回值+参数列表。
3.3.3重载的案例
package com.pxcoder.myproject1;
public class Demo07 {
	public static void main(String[] args) {
		max(10,20);//調用第一個方法
		max(10.0,20.0);//調用第二個方法
	}
	public static void max(int a,int b) {
		System.out.println(a>b?a:b);
	}
	public static void max(double c,double d) {
		System.out.println(c<d?c:d);
	}
}

public class Method08{
	public static void main(String[] args){
		add(1,2);}
	//计算10和20的和 
	public static void add(){
        int num1=10;
		int num2=20;
		System.out.println(num1+num2);
    }
	//计算传入的两个参数的和
	public static void add(int num1,int num2){
        System.out.println(num1+num2);
    }
	public static void add(int num1){				         System.out.println(num1+20);
	}
 	public static void add(int num1,byte num2){
		System.out.println(num1+num2);
    } 
	public static void add(byte num1,int num2){
		System.out.println(num1+num2);
    }
}
  • 参数列表注意事项:
    • 在方法声明中的参数列表称之为形式参数,也叫形参
    • 参数列表中可以声明0个或者是多个不同类型的参数,用逗号隔开
    • 对于调用者而言,调用时,通过方法名传入的具体的参数的值称之为实际参数,也叫实参
    • 方法声明的参数列表中变量只存在声明不需要初始化就可以使用,原因是由于该方法被调用之后,一定用实际参数进行赋值,赋值给形式参数。
    • 方法调用者而言。在调用方法时不能只看方法名称,而且还需要查看方法的参数列表,只有这样才可以正确调用到需要被调用的方法。
    • 参数列表中的参数个数、顺序或类型不同,都會改變所调用的方法
3.3.4重载的问题(重载的陷阱)
public class Test01{
    public static void main(String[] args){
        char ch='A';
        int num=10;
        fun(ch,num);
    }
    //最佳方法1:
    public static void fun(char n,int m){
        System.out.println("Test01.fun(char,int)");
    }
    //自动提升:
    public static void fun(int n,int m){
        System.out.println("Test01.fun(int,int)");
    }
     public static void fun(long n,int m){
        System.out.println("Test01.fun(long,int)");
    }
     public static void fun(int n,float m){
        System.out.println("Test01.fun(int,float)");
    }
}
  • 执行方法调用的顺序:执行方法调用时,一定要注意方法调用的原则是<最近最优原则>。先找一个完全能够匹配的被调用方法,如果不存在这个方法,则实际参数的数据类型会做自动提升,以期望可以找到一个最优的方法。

  • 自动提升的方式和数据类型的自动提升方式一致:

    • byte–>short–>int–>long–>float–>double
    • char–>int—>long–>float–>double
  • 切记不要让程序存在二义性,假设不存在一个完全匹配的,也就是说如果当前类中存在多个可以被调用的方法时,那么程序一定会报错。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QZP51ZX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值