• 类与对象(八)----重载OverLoad


    重载

    什么是重载

    java中允许在同一个类中,存在多个同名但不同参数列表的方法。这就是重载
    例如System.our.println();语句的println方法就是一个有多个重载的方法,可以输出数字100也可以输出字符串"你好".
    java会根据传入的不同参数找到对应的重载方法。

    重载的好处

    1-减轻起名的麻烦
    2-减轻记名的麻烦
    3-减少代码耦合度

    重载案例

    编写5个同名方法,要求传入以下数字时都能计算和:
    5,7
    5.5,7
    7,5.5
    1.2,5.6
    5,4,6
    根据以上数字可得出5个方法的形参列表为:
    int,int
    double,int
    int,double
    double,double
    int,int,int

    public class OverLoad{
    	public static void main(String[] args) {
    		T t = new T();
    		int a = t.cle(5,7);
    		double b = t.cle(5.5,7);
    		double c = t.cle(7,5.5);
    		double d = t.cle(1.2,5.6);
    		int f = t.cle(5,4,6);
    	}
    }
    class T{
    	public int cle(int a,int b){
    		System.out.println("方法cle/int a,int b被调用");
    		return a+b;
    		
    	}
    	public double cle(double a,int b){
    		System.out.println("方法cle/double a,int b被调用");
    		return a+b;
    		
    	}
    	public double cle(int a,double b){
    		System.out.println("方法cle/int a,double b被调用");
    		return a+b;
    		
    	}
    	public double cle(double a,double b){
    		System.out.println("方法cle/double a,double b被调用");
    		return a+b;
    		
    	}
    	public int cle(int a,int b,int c){
    		System.out.println("方法cle/int a,int b,int c被调用");
    		return a+b+c;
    		
    	}
    }
    

    输出结果
    在这里插入图片描述
    都找到了符合实参的对应方法

    重载注意事项

    1-方法名必须相同
    2-形参列表必须不同,(参数的类型或个数,至少有一样不同,参数名无要求)
    3-返回类型无要求
    ps:方法其他都相同,只是参数名不同,无法构成重载。其他相同返回类型不相同也无法构成重载

    练习

    1-在T类中分别创建接收 int 和 int int 和 字符串的三个方法。方法名为m,分别实现平方,相乘,输出字符串,并在main方法中调用

    public class Method05{
    	public static void main(String[] args) {
    		T t =new T();
    		int a = t.m(4);
    		System.out.println(a);
    		int b = t.m(4,5);
    		System.out.println(b);
    		t.m("大人物");
    	}
    }
    class T {
    	//平方
    	public int m(int a){
    		return a*a;
    	}
    	//相乘
    	public int m(int a,int b){
    		return a*b;
    	}
    	//输出字符串
    	public void m(String a){
    		System.out.println(a);
    	}
    }
    

    输出结果
    在这里插入图片描述
    2在T类中创建三个重载方法,第一个方法返回两个int中的最大值,第二个方法返回double中的最大值,第三个方法返回三个int中的最大值
    可以使用三元运算符完成
    布尔值 ? 为ture返回 : 为false返回

    public class Method05{
    	public static void main(String[] args) {
    		T t =new T();
    		int a = t.m(4,50);
    		System.out.println(a);
    		double b = t.m(56.56,54.25);
    		System.out.println(b);
    		int c = t.m(54,51,85);
    		System.out.println(c);
    	}
    }
    class T {
    	//两个int中最大的值
    	public int m(int a,int b){
    		return a > b ? a : b;
    	}
    	//两个double中最大的值
    	public double m(double a,double b){
    		return a > b ? a : b;
    	}
    	//三个int中的最大值
    	public int m(int a,int b,int c){
    		int max = a > b ? a : b;
    		return max > c ? max : c;
    	}
    }
    

    输出结果
    在这里插入图片描述

  • 相关阅读:
    在Ubuntu上用sane api实现通用扫描功能
    csdn涨薪技术-Selenium自动化测试全栈总结
    JavaScript系列之条件运算符
    Linux安装Nginx详细步骤
    JVM学习八
    构建检测,无规矩不成方圆
    Oracle JDK 和 OpenJDK 有什么区别?
    【AI视野·今日NLP 自然语言处理论文速览 第五十五期】Mon, 16 Oct 2023
    日期时间格式字符串“yyyy-MM-dd HH:mm:ss“的意思
    jeecgboot-vue3 配置 sftp-uploader 插件实现vite打包完自动布署代码到服务器
  • 原文地址:https://blog.csdn.net/WINorYU/article/details/126938376