java方法的重载!
2023-03-31 11:02:03 时间
java方法的重载
Java 允许同一个类中定义多个同名方法,只要它们的形参列表不同即可。如果同一个类中包含了两个或两个以上方法名相同的方法,但形参列表不同,这种情况被称为方法重载(overload)。
方法重载的规则:
- 方法名必须相同
- 参数列表必须不同(参数列表的个数不同,或者类型不同,或者参数列表的排列顺序不同)
- 方法的返回类型可以相同也可以不相同
- 仅仅返回类型不同不足以够成方法的重载
代码示例:(定义比大小的方法)
public class Demo02 {
public static void main(String[] args) {
int max=max(5,5,5);
System.out.println(max);
}
//定义一个比大小的方法,参数为(int a,int b)
public static int max(int a,int b){
int result = 0;
if (a>b){
result=a;
}else if (a==b){
System.out.println("a和b是相等的");
return 0;//终止方法
}else {
result=b;
}
return result;
}
//方法名相同,参数相同,但是参数类型不同
public static int max(double a,double b){
int result = 0;
if (a>b){
result=(int)a;
}else if (a==b){
System.out.println("a和b是相等的");
return 0;//终止方法
}else {
result=(int)b;
}
return result;
}
//可以看到方法名相同,但是参数却有三个
public static int max(int a, int b,int c) {
int result = 0;
if (a>=b&&a>=c) {
result = a;
} else if (b>=a&&b>=c) {
result=b;
} else {
result = c;
}
return result;
}
}
输出:我们执行三个参数的方法,看一下效果
5
编译、运行上面程序完全正常,虽然 3 个 max() 方法的方法名相同,但因为它们的形参列表不同,所以系统可以正常区分出这 3 个方法。当运行时,Java 虚拟机会根据传递过来的不同参数来调用不同的方法。
-
上述说了靠返回值类型不足以区分方法的重载(了解)
因为对于java而言,当方法名称相同的时候、,编译器会根据调用方法的参数个数,参数类型去进行逐个匹配。选择对应的方法,如果匹配失败,则编译器报错!
有的时候我们不注意方法的返回值,想要的是方法调用的其他效果(这常被称为“为了副作用而调用”),这时可能会调用方法而忽略其返回值。
相关文章
- 深入探讨Java中的异常与错误处理
- 研究学习Kotlin的一些方法
- 数据显示Java热度持续下落,日子屈指可数?
- 2017年5月编程语言排行榜:Java与C语言优势正开始缩小
- Java多线程之内置锁与显示锁
- Java线程池的理论与实践
- 白话阿里巴巴Java开发手册(编程规约)
- 关于Java你不知道的十件事
- Java服务化系统线上应急和技术攻关,你必须掌握的Linux命令
- Java实现高斯模糊和图像的空间卷积
- Java阻塞队列实现原理分析
- NPM使用技巧
- Node.js对Java开发者而言是什么?
- Java反射机制应用实践
- 理解RxJava中的Single和Completable
- 2017年你不能错过的Java类库
- 大规模集群下的Hadoop NameNode
- 从源码解密Spark内存管理
- 2017年3月编程语言排行榜:Swift首次进入前十
- JVM热点技术:Java类的加载机制