![image-20220702163210840](https://img-blog.csdnimg.cn/img_convert/1a0b6d3652dc36ca62aa7729e89b4827.jpeg)
作者|Rickyの水果摊
时间|2022年7月21日
🌈 今日知识点总结
方法重载(Overload)
1. 方法重载的定义
「方法重载」是指 Java 允许在同一个类中,定义多个 方法名相同,但是 形参列表不同 的方法。
2. 方法重载的优点
3. 方法重载的实例
在「方法重载」中,各方法之间的 形参列表不同 至少包括 以下 3 种情况的 1 种:
- 形参 个数不同
- 形参 类型不同
- 形参 顺序不同(有前提)
1. 形参 「个数不同」:
class Tool{
public int getSum(int n1,int n2){
return n1 + n2;
}
public int getSum(int n1,int n2,int n3){
return n1 + n2 + n3;
}
}
2. 形参 「类型不同」:
class Tool{
public int getSum(int n1,int n2){
return n1 + n2;
}
public double getSum(double n1,double n2){
return n1 + n2;
}
}
3. 形参 「顺序不同」:
class Tool{
public double getSum(int n1,double n2){
return n1 + n2;
}
public double getSum(double n1,int n2){
return n1 + n2;
}
}
在 主类中 调用以上方法:
public MyTools {
public void main(String[] args) {
Tool tool = new Tool();
res1 = tool.getSum(10,20);
res2 = tool.getSum(10,20,30);
res3 = tool.getSum(11.1,22.2);
res4 = tool.getSum(33.3,10);
res4 = tool.getSum(10,33.3);
}
}
🍉 PS1:形参 「顺序不同」有一定的前提条件,即 两个形参列表之间有不同类型的形参。如下面这个程序中,两个形参列表均为 int int
,此时即使交换变量名的顺序,也不构成重构。
class Tool{
public double getSum(double n1,double n2){
return n1 + n2;
}
public double getSum(double n2,int n1){
return n2 + n1;
}
}
🍉 PS2:方法重载的判断与 返回值类型 无关(容易出错 💦),因为形参列表如果没有发生改变,编译器就不知道该选择哪一个方法。
class Tool{
public int getSum(int n1,int n2){
return n1 + n2;
}
public double getSum(int n1,int n2){
return n1 + n2;
}
}
4. 方法重载的判断技巧
本质:在主类中调用重载方法时,系统需要 清楚的知道 调用哪一个重载的方法。
🤔 思考题(重要,必须掌握❗️)
判断下列方法是否构成「方法重载」
public int getSum(int n1,int n2){ ... }
public int getSun(int a,int b){ ... }
public int getSum(int n1,int n2){ ... }
public void getSum(int n1,int n2){ ... }
public double getSum(double n1,int n2){ ... }
public double getSum(int n2,double n1){ ... }
public double getSum(double n1,double n2){ ... }
public double getSum(double n2,double n1){ ... }
public int getSum(int n1,int n2,int n3){ ... }
public void getSum(int n1,int n2){ ... }
-
❌ 首先看方法名是否相同,不相同,不构成重载。
-
❌ 首先看方法名是否相同,相同;再看形参列表是否相同,相同(与 返回类型无关),不构成重载。
-
✅ 首先看方法名是否相同,相同;再看形参列表是否相同,不相同(形参 顺序不同),构成重载。
-
❌ 首先看方法名是否相同,相同;再看形参列表是否相同,相同(与 形参名无关),不构成重载。
-
✅ 首先看方法名是否相同,相同;再看形参列表是否相同,不相同(形参 个数不同),构成重载。
✏️ 今日随记
学习 Java 的 第 16 天。⏰
今天主要整理了Java 面向对象中的「方法重载」的相关内容,难度并不是很大。
今天也是第 4 个「5 + 1 +1」的学习周期的第 1 天,接下来继续加油✊
今日摘录:
「 I could either watch it happen or be part of it 」— Elon Musk
相关博客:
【Java】学习日记 Day15
【Java】学习日记 Day14
【Java】学习日记 Day13
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)