方法的重载
- 重载就是在一个类中,有相同的函数名称,但形参不同的函数
- 方法的重载规则
- 方法名称必须相同(如果名称不同,那就不叫重载了)
- 参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)
- 方法的返回值可以相同也可以不相同
- 仅仅返回值类型不同不足以成为方法的重载
实现理论
- 方法名称相同时,编译器会根据调用方法的参数个数、参数类型等逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错
参数类型不一样
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Lv7c6M7w-1638763196897)(C:\Users\Dandelion\AppData\Roaming\Typora\typora-user-images\image-20211206093622568.png)]
package com.kuang.method;
public class Demo02 {
public static void main(String[] args) {
int max=max(10,10);
System.out.println(max);
}
//比大小
public static double max(double num1,double num2) {
double result = 0;
if (num1 == num2) {
System.out.println("num1==num2");
return 0;//终止方法
}
if (num1 > num2) {
result = num1;
} else {
result = num2;
}
return result;
}
//比大小
public static int max(int num1,int num2) {
int result = 0;
if (num1 == num2) {
System.out.println("num1==num2");
return 0;//终止方法
}
if (num1 > num2) {
result = num1;
} else {
result = num2;
}
return result;
}
}
编译和运行
- 在文件夹中打开命令行
-
自己电脑打开,有一点不一样,是右击**.class**,点open in
-
在文件名前面填入cmd+空格
-
要一直退到scr,才能执行
-
**cd…/**回到上一级目录
-
编译的时候不需要包名,但执行的时候一定要把包名加上
-
丢三个字符串进去,就有输出了
可变参数
- JDK1.5开始,java支持传递同类型的可变参数给一个方法
- 在方法声明中,在指定参数类型后加一个省略号(…)
- 一个方法中只能指定一个可变参数,他必须是方法的最后一个参数。任何普通的参数必须在他之前声明