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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值