• JAVA--可变长参数


    可变长参数:

    可变长参数可以接受任意个数的实参,形参实际上是一个数组。

    语法形式:

    方法名称(类型 参数1,类型 参数2,类型...可变长参数)

    *可变长参数一定是方法的最后一个参数

    1 public void summ(double...num,String test){//可变长参数必须放在最后
    2         System.out.println("=====");
    3     }

    在可变长参数的方法中,可以将可变长参数当成数组使用。可变长参数基本实例:

     1 package test01;
     2 
     3 public class ChangeB {
     4 
     5 /**
     6 
     7  * @param Change
     8 
     9  */
    10 
    11 public double summ(double...num){
    12 
    13 double summ=0;
    14 
    15 for(int i = 0;i < num.length; i++){
    16 
    17 summ += num[i];
    18 
    19 }
    20 
    21 return summ;
    22 
    23 }
    24 
    25 public static void main(String[] args) {
    26 
    27 ChangeB ch = new ChangeB();
    28 
    29 double total = ch.summ(1,2,3);
    30 
    31 System.out.println("bianchang:"+total);
    32 
    33 }
    34 
    35 }

    可变长参数方法的调用,改变上述调用方法:

    1 ChangeB ch = new ChangeB();//实例化
    3 System.out.println("不传参数调用:"+ch.summ());
    5 System.out.println("传入一个参数的调用:"+ch.summ(6.6));//值为6.6
    7 System.out.println("传入二个参数的调用:"+ch.summ(1.3,2.5));//值为3.8
    9 System.out.println("传入三个参数的调用:"+ch.summ(1.1,2.2,3.4));//值为6.7

    在使用可变长参数方法是还需要注意几点:

    在一个类中同名方法一个为单参数,一个为可变长参数时,如果实参只传入一个参数时匹配单参数和可变长参数2个方法,单实际上只选择单参数方法,举例说明:

     1 package test01;
     2 
     3 public class ChangeB {
     4 
     5 /**
     6 
     7  * @param Change
     8 
     9  */
    10 
    11 public double summ(double...num){//可变长参数方法
    12 
    13 double summ=0;
    14 
    15 for(int i = 0;i < num.length; i++){
    16 
    17 summ += num[i];
    18 
    19 }
    20 
    21 System.out.println("可变长");//证明调用的是单参数还是可变长参数
    22 
    23 return summ;
    24 
    25 }
    26 
    27 public double summ(double num){//单参数方法
    28 
    29 double summ1=0;
    30 
    31 summ1 = num;
    32 
    33 System.out.println("单参数");//证明调用的是单参数还是可变长参数
    34 
    35 return summ1;
    36 
    37 }
    38 
    39 public static void main(String[] args) {
    40 
    41 ChangeB ch = new ChangeB();//实例化
    42 
    43 System.out.println(ch.summ(9.8));
    44 
    45 }
    46 
    47 }

        结果:

        单参数

        9.8

    传入的实参,调用的方法不能跟2个方法匹配(可变长)

    情况1

     1 public void summ(double...num){//可变长参数方法1
     2 
     3 System.out.println("=====");
     4 
     5 }
     6 
     7 public void summ(double num1,double...num){//可变长参数方法2
     8 
     9 System.out.println("=====");
    10 
    11 }
    12 
    13 public static void main(String[] args) {
    14 
    15 ChangeB ch = new ChangeB();//实例化
    16 
    17 ch.summ("sss");//编译错误处
    18 
    19 }//

    情况2(这个就更是错的)

     1 public void summ(double...num){//可变长参数方法1,错误
     2 
     3 System.out.println("=====");
     4 
     5 }
     6 
     7 public void summ(double...num1){//可变长参数方法2,错误
     8 
     9 System.out.println("=====");
    10 
    11 }
    12 
    13 public static void main(String[] args) {
    14 
    15 ChangeB ch = new ChangeB();//实例化
    16 
    17 ch.summ("sss");
    18 
    19 }//

     

  • 相关阅读:
    IOS OpenGL ES GPUImage 图像显示亮度最高的像素,其他为黑 GPUImageNonMaximumSuppressionFilte
    Email营销相关名词解释:PEM,UCE,Optin,Double OptIn,Optout
    Lombok 使用在 IDEA 中进行 JUnit 测试的时候提示 variable log 错误
    到底应不应该使用 lombok
    Hibernate 元数据模型(MetaModel)提示类没有找到错误
    Java 9 缩小字符串( Compact String)
    Java 虚拟机的概念是怎么来的
    Discourse 自定义头部链接(Custom Header Links)
    Java 6 压缩字符串(Compressed String)
    Java 缩小字符串( Compact String)和 压缩字符串(Compressed String)
  • 原文地址:https://www.cnblogs.com/sun-chao/p/6369201.html
Copyright © 2020-2023  润新知