一:基本介绍
java 中允许同一个类中,多个同名方法的存在,但要求 形参列表不一致!
比如: System.out.println(); out 是 PrintStream 类型
:::danger
优点:
减轻了起名与记名的麻烦
:::
二:注意事项和细节
- 方法名:必须相同
- 形参列表:必须不同(形参类型或者个数或顺序,至少有一样不同,参数名无要求)
- 返回类型:无要求
calculate(int n1, int n2) //两个整数的和
calculate(int n1, double n2) //一个整数,一个 double 的和
calculate(double n2, int n1)//一个 double ,一个 Int 和
calculate(int n1, int n2,int n3)//三个 int 的
三:练习
- 判断
四:可变参数
1:基本介绍
java允许将一个类中多个同名同功能但参数个数不同的方法,封装成一个方法
2:基本语法
/*访问修饰符 返回类型 方法名 (数据类型.... 形参名) {
}*/
//1. int... 表示接受的是可变参数,类型是 int即可以接收多个 int(0-多)
//2. 使用可变参数时,可以当做数组来使用 即 nums 可以当做数组
//3. 遍历 nums
/**
* 作者:sakura
* 日期:2022年07月28日 23:51
*/
public class method {
public static void main(String[] args) {
help help = new help();
System.out.println(help.sum(1,2,3,4));
}
}
class help{
public int sum (int... nums){
int res = 0;
for(int i = 0;i<nums.length;i++){
res += nums[i];
}
return res;
}
}
3:注意事项和细节
可变参数的实参可以为0个或任意多个。
public static void main(String[] args) {
help help = new help();
System.out.println(help.sum(1,2,3,4));
System.out.println(help.sum(4));
}
class help{
public int sum (int... nums){
int res = 0;
for(int i = 0;i<nums.length;i++){
res += nums[i];
}
return res;
}
}
可变参数的实参可以为数组。
public static void main(String[] args) {
int[] arr = {1, 2, 3};
T t1 = new T();
t1.f1(arr);
}
class T{
public void f1(int... nums) {
System.out.println("长度=" + nums.length);
}
}
可变参数的本质就是数组.
- 可变参数可以和普通类型的参数一起放在形参列表,但必须保证可变参数在最后 ```java public void f2(String str, double… nums) {
}
- **_一个形参列表中只能出现一个可变参数_**
```java
//下面为错误写法,只能出现一个可变参数f
public void f3(int... nums1, double... nums2) {
}