一:基本介绍

java 中允许同一个类中,多个同名方法的存在,但要求 形参列表不一致!
比如: System.out.println(); out 是 PrintStream 类型
:::danger 优点:
减轻了起名与记名的麻烦 :::

二:注意事项和细节

  1. 方法名:必须相同
  2. 形参列表:必须不同(形参类型或者个数或顺序,至少有一样不同,参数名无要求)
  3. 返回类型:无要求
    1. calculate(int n1, int n2) //两个整数的和
    2. calculate(int n1, double n2) //一个整数,一个 double 的和
    3. calculate(double n2, int n1)//一个 double ,一个 Int 和
    4. calculate(int n1, int n2,int n3)//三个 int 的

    三:练习

  • 判断

image.png

四:可变参数

1:基本介绍

java允许将一个类中多个同名同功能但参数个数不同的方法,封装成一个方法

2:基本语法

  1. /*访问修饰符 返回类型 方法名 (数据类型.... 形参名) {
  2. }*/
  3. //1. int... 表示接受的是可变参数,类型是 int即可以接收多个 int(0-多)
  4. //2. 使用可变参数时,可以当做数组来使用 即 nums 可以当做数组
  5. //3. 遍历 nums
  6. /**
  7. * 作者:sakura
  8. * 日期:2022年07月28日 23:51
  9. */
  10. public class method {
  11. public static void main(String[] args) {
  12. help help = new help();
  13. System.out.println(help.sum(1,2,3,4));
  14. }
  15. }
  16. class help{
  17. public int sum (int... nums){
  18. int res = 0;
  19. for(int i = 0;i<nums.length;i++){
  20. res += nums[i];
  21. }
  22. return res;
  23. }
  24. }

3:注意事项和细节

  • 可变参数的实参可以为0个或任意多个。

    1. public static void main(String[] args) {
    2. help help = new help();
    3. System.out.println(help.sum(1,2,3,4));
    4. System.out.println(help.sum(4));
    5. }
    6. class help{
    7. public int sum (int... nums){
    8. int res = 0;
    9. for(int i = 0;i<nums.length;i++){
    10. res += nums[i];
    11. }
    12. return res;
    13. }
    14. }
  • 可变参数的实参可以为数组。

    1. public static void main(String[] args) {
    2. int[] arr = {1, 2, 3};
    3. T t1 = new T();
    4. t1.f1(arr);
    5. }
    6. class T{
    7. public void f1(int... nums) {
    8. System.out.println("长度=" + nums.length);
    9. }
    10. }
  • 可变参数的本质就是数组.

  • 可变参数可以和普通类型的参数一起放在形参列表,但必须保证可变参数在最后 ```java public void f2(String str, double… nums) {

}

  1. - **_一个形参列表中只能出现一个可变参数_**
  2. ```java
  3. //下面为错误写法,只能出现一个可变参数f
  4. public void f3(int... nums1, double... nums2) {
  5. }

4:练习

image.png