zoukankan      html  css  js  c++  java
  • 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 }//

     

  • 相关阅读:
    jQuery.fly插件实现添加购物车抛物线效果
    jQuery 实现前端模糊匹配与首字母搜索
    Java生成微信二维码及logo二维码
    Map 与 JavaBean 的相互装换
    从零写Java Web框架——请求的处理DispatcherServlet
    从零写Java Web框架——实现Ioc依赖注入
    记一次校招面试
    使用DbUtils对JDBC封装实现面向实体查询
    HTTP Status 500 PWC6188 jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application
    【插件】百度编译器ueditor插入视频的时候。在预览的窗口提示 “输入的视频地址有误,请检查后再试!
  • 原文地址:https://www.cnblogs.com/sun-chao/p/6369201.html
Copyright © 2011-2022 走看看