【Java中的方法重载(overload)】Java神奇之法:方法重载揭秘!解密Java中的方法重载技巧,带你飞跃编程巅峰!

方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数.具体有以下几种。先定义一个求和的方法`

	public static int add(int a, int b) {
		int sum = a + b;
		return sum;
	}
  • 方法名相同,参数类型不同,构成重载
	public static double add(double a, double b) {
		double sum = a + b;
		return sum;
	}
  • 方法名相同,参数顺序不同,构成重载
public static double add(int a, double b) {
		double sum = a + b;
		return sum;
	}
  • 方法名相同,参数个数不同,构成重载
public static int add(int a, int b, int c) {
		int sum = a + b + c;
		return sum;

接下来在看错误

  • 只有返回值不同,不构成方法的重载
public static double add(int b,int a) {
	   double sum=a+b; 
	   return sum;
	   }
  • 只有参数名称不同,不构成方法的重载
	public static int add(int b,int a) { 
		double sum=a+b;
	    return sum;
}

最后再来看一下整体效果

package com.qhit.san;

/**
 * 方法重载
 * 
 * @author 梁雪
 *
 */
public class SOverload {
	public static void main(String[] args) {
		System.out.println("我调用的是第一个求和的方法,结果是 "+add(12, 13));
		System.out.println("我调用的是参数个数不同,构成重载的方法,结果是 "+add(31, 1, 33));
		System.out.println("我调用的是参数类型不同,构成重载的方法,结果是 "+add(1.2, 1.3));
		System.out.println("我调用的是参数顺序不同,构成重载的方法,结果是 "+add(12, 1.3));

	}

	// 求和的方法
	public static int add(int a, int b) {
		int sum = a + b;
		return sum;
	}

	// 方法名相同,参数个数不同,构成重载
	public static int add(int a, int b, int c) {
		int sum = a + b + c;
		return sum;
	}

	// 方法名相同,参数类型不同,构成重载
	public static double add(double a, double b) {
		double sum = a + b;
		return sum;
	}

	// 方法名相同,参数顺序不同,构成重载
	public static double add(int a, double b) {
		double sum = a + b;
		return sum;
	}

运行结果如下:`在这里插入代码片

我调用的是第一个求和的方法25
我调用的是参数个数不同,构成重载的方法65
我调用的是参数类型不同,构成重载的方法2.5
我调用的是参数顺序不同,构成重载的方法13.3


新版也可看一下

在Java中,方法重载(Method Overload)是指在同一个类中定义了多个方法,它们具有相同的名称但参数列表不同。方法重载允许使用相同的方法名执行不同的操作,根据传递给方法的参数类型或参数个数的不同来确定要调用的具体方法。

方法重载的规则如下:

  1. 方法名称必须相同。
  2. 方法的参数列表必须不同,可以通过参数的个数、类型或顺序来区分重载的方法。
  3. 方法的返回类型可以相同,也可以不同。返回类型不是决定方法重载的因素。

方法重载的优势在于可以简化代码和提高代码的可读性。通过重载方法,可以使用相同的方法名来表示一组相关的操作,而不必为每个操作定义一个独立的方法名。

在确定要调用的具体方法时,Java编译器会根据传递给方法的参数类型来匹配最合适的方法。它会按照以下规则进行选择:

  1. 如果传递的参数类型与某个重载方法的参数类型完全匹配,则选择该方法。
  2. 如果没有完全匹配的方法,但有多个重载方法的参数类型可以通过自动类型转换来匹配,则选择最具体的匹配。
  3. 如果仍然存在多个匹配方法,则编译器将报错,因为无法确定要调用哪个方法。

以下是一个示例,展示了方法重载的用法:

public class Calculator {
    public int add(int a, int b) {
        return a + b;
    }
    
    public double add(double a, double b) {
        return a + b;
    }
    
    public int add(int a, int b, int c) {
        return a + b + c;
    }
}

public class Main {
    public static void main(String[] args) {
        Calculator calculator = new Calculator();
        
        int result1 = calculator.add(2, 3); // 调用第一个 add 方法
        double result2 = calculator.add(2.5, 3.5); // 调用第二个 add 方法
        int result3 = calculator.add(2, 3, 4); // 调用第三个 add 方法
        
        System.out.println(result1); // 输出:5
        System.out.println(result2); // 输出:6.0
        System.out.println(result3); // 输出:9
    }
}

在上述示例中,Calculator 类定义了三个重载的 add 方法,分别接受不同类型和个数的参数。在 Main 类的 main 方法中,根据传递给 add 方法的参数类型和个数的不同,分别调用了相应的方法。

总结一下,方法重载是Java中一种强大的特性,它允许在同一个类中定义多个方法,根据参数的类型和个数的不同来区分它们。通过方法重载,可以简化代码并提高代码的可读性,使程序更加灵活和易于使用。

  • 46
    点赞
  • 141
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值