• 类与对象(八)----重载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;
    	}
    }
    

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

  • 相关阅读:
    协助办案,,,
    React组件通信方式总结
    Labelme分割标注软件
    初识OpenGL (2)编译着色器
    数据结构之B树详解(极简)
    【云原生 | 从零开始学Kubernetes】三、Kubernetes集群管理工具kubectl
    MyBatis trim标签起什么作用呢?
    EPLAN学习笔记1:连接定义点和电位定义点
    Spring Boot 8 实现对战记录(次要)&&用户分数排行榜(次要)&&实现分页(重点)
    Matlab:在命令窗口中输入语句
  • 原文地址:https://blog.csdn.net/WINorYU/article/details/126938376