【Java】学习日记 Day16

本文介绍了Java中的方法重载,包括定义、优点和实例。方法重载要求方法名相同但形参列表不同,与返回类型无关。文章通过示例解释了形参个数、类型和顺序不同的重载情况,并提供了相关思考题帮助理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

image-20220702163210840

作者|Rickyの水果摊

时间|2022年7月21日


🌈 今日知识点总结

方法重载(Overload)

1. 方法重载的定义

方法重载」是指 Java 允许在同一个类中,定义多个 方法名相同,但是 形参列表不同 的方法。


2. 方法重载的优点
  • 减少方法的取名压力
  • 减少方法的记名压力

3. 方法重载的实例

在「方法重载」中,各方法之间的 形参列表不同 至少包括 以下 3 种情况的 1 种:

  • 形参 个数不同
  • 形参 类型不同
  • 形参 顺序不同(有前提)
1. 形参 「个数不同」:
class Tool{
	public int getSum(int n1,int n2){       //int  int
		return n1 + n2;
	}
  public int getSum(int n1,int n2,int n3){//int  int  int
		return n1 + n2 + n3;   //第2个getSum方法 与 第1个getSum方法的 形参个数不同,构成方法重载
	}
}
2. 形参 「类型不同」:
class Tool{
	public int getSum(int n1,int n2){         //int  int
		return n1 + n2;
	}
  	public double getSum(double n1,double n2){//double  double
		return n1 + n2;             //第2个getSum方法 与 第1个getSum方法的 参数类型不同,构成方法重载
	}
}
3. 形参 「顺序不同」:
class Tool{
  	public double getSum(int n1,double n2){ //int  double
  		return n1 + n2;
	}
 	public double getSum(double n1,int n2){ //double  int
		return n1 + n2;            //第2个getSum方法 与 第1个getSum方法的 形参顺序不同,构成方法重载
	}
}

主类中 调用以上方法:

public MyTools {
	public void main(String[] args) {
		Tool tool = new Tool();
   	 	res1 = tool.getSum(10,20);      //int int
    	res2 = tool.getSum(10,20,30);   //int int int
    	res3 = tool.getSum(11.1,22.2);  //double double
    	res4 = tool.getSum(33.3,10);    //double int 
    	res4 = tool.getSum(10,33.3);    //int double
	}
}

🍉 PS1:形参 「顺序不同」有一定的前提条件,即 两个形参列表之间有不同类型的形参。如下面这个程序中,两个形参列表均为 int int,此时即使交换变量名的顺序,也不构成重构。

class Tool{
	public double getSum(double n1,double n2){ //double  double
  		return n1 + n2;
	}
 	public double getSum(double n2,int n1){ //double  double
		return n2 + n1;      //编译报错,不构成方法重载
	}
}

🍉 PS2:方法重载的判断与 返回值类型 无关(容易出错 💦),因为形参列表如果没有发生改变,编译器就不知道该选择哪一个方法。

class Tool{
	public int getSum(int n1,int n2){ //double  double
  		return n1 + n2;
	}
 	public double getSum(int n1,int n2){ //double  double
		return n1 + n2;        //仅改变返回值类型不构成方法重构,编译报错
	}
}

4. 方法重载的判断技巧

本质:在主类中调用重载方法时,系统需要 清楚的知道 调用哪一个重载的方法。

  • 方法名相同:首先看 2 个方法的方法名是否相同,方法名不同,就不构成重载。

  • 形参列表不同:在方法名一致的前提下,按照定义对比形参列表。

  • 形参名:没有要求。

  • 返回类型:没有要求。

🤔 思考题(重要,必须掌握❗️)

判断下列方法是否构成「方法重载」

//题目1:
public int getSum(int n1,int n2){ ... }
public int getSun(int a,int b){ ... }

//题目2:
public int getSum(int n1,int n2){ ... }
public void getSum(int n1,int n2){ ... }

//题目3:
public double getSum(double n1,int n2){ ... }
public double getSum(int n2,double n1){ ... }

//题目4:
public double getSum(double n1,double n2){ ... }
public double getSum(double n2,double n1){ ... }

//题目5:
public int getSum(int n1,int n2,int n3){ ... }
public void getSum(int n1,int n2){ ... }
  1. ❌ 首先看方法名是否相同,不相同,不构成重载。

  2. ❌ 首先看方法名是否相同,相同;再看形参列表是否相同,相同(与 返回类型无关),不构成重载。

  3. ✅ 首先看方法名是否相同,相同;再看形参列表是否相同,不相同(形参 顺序不同),构成重载。

  4. ❌ 首先看方法名是否相同,相同;再看形参列表是否相同,相同(与 形参名无关),不构成重载。

  5. ✅ 首先看方法名是否相同,相同;再看形参列表是否相同,不相同(形参 个数不同),构成重载。


✏️ 今日随记

学习 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

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值