Java重载机制

开发工具与关键技术:eclipse  java
作者:黄济民
撰写时间:2021.5.27

方法重载又被称为Overload 使用方法重载的时候要考虑功能是否相似,尽可能让方法名不同。
package com.hjm.dome;

/**

  • @author Rmin
  • 以下代码不使用“方法重载机制”,不使用Overload,分析程序存在缺点?
  •    1. sumInt,sumLong,sunDouble方法虽然功能不同,但是功能相似的。都是求和。
    
  •       在以下程序当中功能相似的方法,分别起到了三个不同的名字,这对于程序员来说,调用方法
    
  •       的时候不方便,程序员需要记忆更多方法,才能完成调用。【不方便】
    
  •    2. 代码不美观。
    
  •    有没有这样的一种机制:
    
  •       功能虽然不同,但是“功能相似”的时候,有没有这样的一种机制,可以让程序员使用这些方法的时候就像在使用
    
  •       同一个方法一样,这样程序员以后编写代码比较方便,也不需要记忆更多的方法名。代码也会很美观。
    
  •       有这种机制:方法重载机制Overload
    

*/

public class OverloadText01 {

//入口
public static void main(String[] args) {
	
	//调用方法
	int result1 = sumInt(1,2);
	System.out.println(result1);
	
	double result2 = sumDouble(1.0,2.0);
	System.out.println(result2);
	
	long result3 = sumLong(1L,2L);
	System.out.println(result3);
	
}

//定义一个方法,可以计算两个int类型数据的和
public static int sumInt(int a, int b) {
	return a + b;
}
//定义一个方法,可以计算两个double类型数据的和
public static double sumDouble(double a, double b) {
	return a + b;
}
//定义一个方法,可以计算两个long类型数据的和
public static long sumLong(long a, long b) {
	return a + b;
}

//最终希望达到的效果是:程序员在使用上面的三个相似的方法的时候,就行在用一个方法一样。
//java支持这种机制【有些语言不支持,例如:JavaScript】

}

package com.hjm.dome;

/**

  • @author Rmin
  • 该程序是一个体验程序,体验一下方法重载的优点:
  •  * 程序员调用方法的时候,比较方便,虽然调用的是不同的方法,但是就感觉在使用一个方法一样。
    
  •    不需要记忆更多的方法名。
    
  •  * 代码美观
    
  • 前提:功能相似的时候,方法名可以相同。
  • 但是:功能不同的时候,尽可能让这两个方法的名字不同。
    */

public class OverloadText02 {

public static void main(String[] args) {
	
	//调用方法的时候就像在使用一个方法一样
	//参数的类型不同,对应调用的方法不同。
	//此时区分方法不再依靠方法名了,依靠的是参数的数据类型。
	System.out.println(sum(1,2));
	System.out.println(sum(1.0,2.0));
	System.out.println(sum(1L,2L));
	
}


//以下三个方法构成了方法重载机制
public static int sum(int a, int b) {
	System.out.println("sum(int,int)");
	return a + b;
}
public static long sum(long a, long b) {
	System.out.println("sum(long,long)");
	return a + b;
}

public static double sum(double a, double b) {
	System.out.println("sum(double,double)");
	return a + b;
}

}

package com.hjm.dome;

/**

  • @author Rmin
  • 方法重载:
  • 1.方法重载又被称为:Overload
    
  • 2.什么时候考虑使用方法重载?
    
  •    * 功能相似的时候,尽可能让方法名相同。
    
  •      【但是:功能不同/不相似的时候,尽可能让方法名不同】
    
  • 3.什么条件满足之后构成的方法重载?
    
  •    * 在同一类当中
    
  •    * 方法名相同
    
  •    * 参数列表不同:
    
  •         - 数量不同
    
  •         - 顺序不同
    
  •         - 类型不同
    
  • 4.方法重载和什么有关系,和什么没有关系?
    
  •    * 方法重载和方法名+参数列表有关系
    
  •    * 方法重载和返回值类型无关
    
  •    * 方法重载和修饰符列表无关
    

*/

public class OverloadText03 {

public static void main(String[] args) {
	m1();
	m1(10);
	
	m2(1,2.0);
	m2(2.0,1);
	
	m3(10);
	m3(3.0);

// m4(1,2);
// m4(1,2);

}

//以下两个方法构成重载
public static void m1() {}
public static void m1(int a) {}

//以下两个方法构成重载
public static void m2(int a,double b) {}
public static void m2(double a,int b) {}

//以下两个方法构成重载
public static void m3(int x) {}
public static void m3(double x) {}


//编译错误:以下不是方法重载,是发生了方法重复

// public static void m4(int a,int b) {}
// public static void m4(int a,int b) {}

// public static void x() {
//
// }
// public static int x() {
//
// }

// void y() {
//
// }
//
// public static void y() {
//
// }

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值