第六章 方法的重载(1.5)

本文介绍了Java中的方法重载概念,通过MathUtils类的multiply和add方法为例,展示了如何通过不同的参数列表实现方法的重载。方法重载的关键在于参数列表的不同,包括参数个数、类型和顺序,而非返回值类型。示例代码中演示了如何调用这些重载方法,并给出了正确和错误的方法重载例子。JDK API中也有许多方法重载的应用,如String的substring和indexOf等方法。
摘要由CSDN通过智能技术生成

第六章 方法的重载(1.5)

六、方法的重载

在一个类中,多个方法具有相同的方法名称,但却具有不同的参数列表,与返回值无关,称作方法重载(overload)。

实例:

修改后的MathUtils类部分源码:

public class MathUtils {
/**
* 将两个整数相乘并返回结果
* @param num1 第一个参与相乘的整数
* @param num2 第二个参与相乘的整数
* @return 相乘的结果
*/
public int multiply(int num1, int num2) {
return num1 * num2;
}

/**
 * 将两个浮点相乘并返回结果
 * @param num1 第一个参与相乘的浮点数
 * @param num2 第二个参与相乘的浮点数
 * @return 相乘的结果
 */
public double multiply(double num1, double num2) {
	return num1 * num2;
}

/**
 * 将两个整数相加并返回结果
 * @param num1 第一个参与相加的整数
 * @param num2 第二个参与相加的整数
 * @return 相加的结果
 */
public int add(int num1, int num2) {
	return num1 + num2;
}

/**
 * 将两个浮点数相加并返回结果
 * @param num1 第一个参与相加的浮点数
 * @param num2 第二个参与相加的浮点数
 * @return 相加的结果
 */
public double add(double num1, double num2) {
	return num1 + num2;
	}
}

Test类源码:

public class Test {
public static void main(String[] args) {
// 实例化一个MathUtils类的对象,并赋值给MathUtils类型的变量mu
MathUtils mu = new MathUtils();

	// 调用multiply(int num1, int num2)方法
	int result1 = mu.multiply(3, 4);
	System.out.println("result1 = " + result1);

	// 调用multiply(double num1, double num2)方法
	double result2 = mu.multiply(3.14, 6.18);
	System.out.println("result2 = " + result2);

	// 调用add(int num1, int num2)方法
	int result3 = mu.add(3,4);
	System.out.println("result3 = " + result3);

	// 调用add(double num1, double num2)方法
	double result4 = mu.add(3.12, 6.18);
	System.out.println("result4 = " + result4);
	}
}

解释说明
参数列表不同,是指参数个数、参数数据类型,参数顺序不同。比如以下是正确的方法重载的例子:

public double area(double a);
public double area(int a, double b);
public double area(double a, int b);

而以下是错误的方法重载的例子:

public int calc(int a, int b);
public void calc(int x, int y);

两个calc()方法虽然返回值类型和参数名称不同,但参数个数、类型和顺序完全相同,也就是说它们的参数列表是相同的。

调用方法时,方法名和传入的参数共同决定了具体调用了哪个方法。

JDK API中有众多方法重载的例子,比如String类substring([参数])、indexOf([参数])lastIndexOf([参数])方法,PrintStream类的println()方法等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值