可变参数用法及用于方法重载中参数时的注意事项

概念:

jdk5.0出现的新特性。将同一个类中,多个方法名相同、参数类型相同、返回类型相同,仅仅是参数个数不同的方法抽取成一个方法,这种方法称为可变参数的方法

好处:

提高代码的重用性和维护性

语法:

修饰符 返回类型 方法名(参数类型… 参数名){
  … …
}

注意:
1.>使用时,将可变长度的参数当做数组使用,等价于:

修饰符 返回类型 方法名(参数类型[] 参数名){
  … …
}

(所以可变参数不可重载成一维数组)因为早期JDK在5.0以前实现可变传参是依靠String[]数组来实现,所以在声明参数时(String…strs)等价于 (String[] args)。

2.>用于方法重载声明时要注意,形参类型相同的数组之间也不会构成方法的重载
3.>用于方法重载作为参数时如何遍历

//遍历可变参数的方法和遍历数组类似
public void user(int[]....userids){
//遍历
        for(int i=0;i<userids.length;i++){
                  System.out.println(userids[i])
      }
}

--------------------------------------------- 分割线---------------------------------------------------------

声明用例:

/**
 * ClassName:VarargsDemo 
 *
 * @author: zhengkw
 * @description: 测试
 * @date: 20/02/03下午 4:55
 * @version:
 * @since: jdk 1.8
 */

public class VarargsDemo {
    public static void main(String args[]) {
        // 调用可变参数的方法
        printMax(34, 3, 3, 2, 56.5);
        printMax(new double[]{1, 2, 3});
    }
 
    public static void printMax( double... numbers) {
        if (numbers.length == 0) {
            System.out.println("没有参数传递");
            return;
        }
 
        double result = numbers[0];
 
        for (int i = 1; i <  numbers.length; i++){
            if (numbers[i] >  result) {
                result = numbers[i];
            }
        }
        System.out.println("The max value is " + result);
    }
}

使用特点:

1、可变参数的实参可以为0个或任意多个,当为0个参数时传入长度为0的数组:double[0]
2、可变参数的实参可以为一维数组类型
3、可变参数和普通类型参数 一起使用时,只能放在最后
4、一个参数列表中至多有一个可变参数!

发布了6 篇原创文章 · 获赞 1 · 访问量 153

猜你喜欢

转载自blog.csdn.net/qq_37714755/article/details/104188758