可变长参数:

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

语法形式:

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

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

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

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

 package test01;

 public class ChangeB {

 /**

  * @param Change

  */

 public double summ(double...num){

 double summ=0;

 for(int i = 0;i < num.length; i++){

 summ += num[i];

 }

 return summ;

 }

 public static void main(String[] args) {

 ChangeB ch = new ChangeB();

 double total = ch.summ(1,2,3);

 System.out.println("bianchang:"+total);

 }

 }

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

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

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

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

 package test01;

 public class ChangeB {

 /**

  * @param Change

  */

 public double summ(double...num){//可变长参数方法

 double summ=0;

 for(int i = 0;i < num.length; i++){

 summ += num[i];

 }

 System.out.println("可变长");//证明调用的是单参数还是可变长参数

 return summ;

 }

 public double summ(double num){//单参数方法

 double summ1=0;

 summ1 = num;

 System.out.println("单参数");//证明调用的是单参数还是可变长参数

 return summ1;

 }

 public static void main(String[] args) {

 ChangeB ch = new ChangeB();//实例化

 System.out.println(ch.summ(9.8));

 }

 }

结果:

单参数

9.8

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

情况1:

 public void summ(double...num){//可变长参数方法1

 System.out.println("=====");

 }

 public void summ(double num1,double...num){//可变长参数方法2

 System.out.println("=====");

 }

 public static void main(String[] args) {

 ChangeB ch = new ChangeB();//实例化

 ch.summ("sss");//编译错误处

 }//

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

 public void summ(double...num){//可变长参数方法1,错误

 System.out.println("=====");

 }

 public void summ(double...num1){//可变长参数方法2,错误

 System.out.println("=====");

 }

 public static void main(String[] args) {

 ChangeB ch = new ChangeB();//实例化

 ch.summ("sss");

 }//

 

JAVA--可变长参数的更多相关文章

  1. Java 可变长参数列表

    Java中定义了变长参数,允许在调用方法时传入不定长度的参数. 定义及调用 在定义方法时,在最后一个形参后加上三点 …,就表示该形参可以接受多个参数值,多个参数值被当成数组传入.上述定义有几个要点需要 ...

  2. Java可变长参数方法调用问题

    不说废话,直接上代码: package mytest; import java.util.List; public class TestClass { public void method(List& ...

  3. Java可变参数/可变长参数

    Java可变参数/可变长参数 传递的参数不确定长度,是变长的参数,例如小例子: package demo; public class Demo { public static int sum(int ...

  4. Java 数组 可变长参数 实例

    可以把类型相同但个数可变的参数传递给方法,方法中的参数声明如下: typeName...parameterName (类型名...参数名) 在方法声明中,指定类型后紧跟着省略号...,只能给方法指定一 ...

  5. Java中可变长参数的使用及注意事项

    在Java5 中提供了变长参数(varargs),也就是在方法定义中可以使用个数不确定的参数,对于同一方法可以使用不同个数的参数调用,例如print("hello");print( ...

  6. Java中可变长参数的方法

    原文转自:http://www.cnblogs.com/lanxuezaipiao/p/3190673.html 在Java5 中提供了变长参数(varargs),也就是在方法定义中可以使用个数不确定 ...

  7. java中可变长参数

    ** * Created by Lenovo on 2017/12/10. * java中可变长参数 */ public class reflect04 { //m1有一个int类型的可比变长参数 / ...

  8. java中可变长参数的定义及使用方法

    JAVA中可以为方法定义可变长参数( Varargs)来匹配不确定数量的多个参数,其定义用“...”表示.其实,这类似于为方法传了一个数组,且在使用方法上也和数组相同,如下: public void ...

  9. Java中的可变长参数

    可变长参数的定义 与一般方法没多大差别,只不过形参多了...(三个点) 方法名(数据类型 ... 变量名){} 小案例: public class ParamDemo { public static ...

  10. 0521Day03命名规范 Data函数 可变长参数 枚举类型

    [重点] 命名规范 枚举类型 Date函数 可变长参数 pirnt,println 命名规范 1. 驼峰命名法:main,username,setUsername 用于变量.方法的命名 2. Pasc ...

随机推荐

  1. android测试之——Instrumentation(一)

    以下是本人原创,如若转载和使用请注明转载地址.本博客信息切勿用于商业,可以个人使用,若喜欢我的博客,请关注我,谢谢!博客地址 感谢您支持我的博客,我的动力是您的支持和关注!如若转载和使用请注明转载地址 ...

  2. css(一)-- 概述以及引入方式

    概述 层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言.CSS不仅可 ...

  3. Maven项目中pom文件分析

    pom英文全称: project object model 1.概述 pom.xml文件描述了maven项目的基本信息,比如groupId,artifactId,version等.也可以对maven项 ...

  4. 获取url参数和时间格式化

    1. 获取url参数: var url = request("url"); //获取url参数 function request(paras) { //decodeURI() 函数 ...

  5. html&&css 基础知识笔记

    diV有 Class.Style.title.ID 等属性. 1.margin 空出边缘 margin:上 下 左 右(按顺时针顺序,缺少某一方向则对称) 2.border 边框(三要素:像素 形状 ...

  6. 最近iOS开发遇到的问题

    1)计算器,编辑框键盘: 2)类间参量引用传递: 3)饼状图: 4)折线图: 5)uicollection使用: 6)富文本开发: 7)separatorInset,layoutMargins uit ...

  7. 基因探针富集分析(GSEA)& GO & pathway

    http://blog.sina.com.cn/s/blog_4c1f21000100utyx.html GO是Gene Ontology的简称,是生物学家为了衡量基因的功能而而发起的一个项目,从分子 ...

  8. zepto.js swipe实现触屏tab菜单

    今天我们来说下zepto.js,有兴趣的朋友可以先进这个网站“http://zeptojs.com/” ,这个可以说是手机里的jquery,但是它取消了hover,加上了swipe及tap这两个触屏功 ...

  9. Hibernate懒加载的三种解决方案

    Hibernate懒加载的两种解决方案: 1.Hibernate.initialize(代理对象) 2.在*.hbm.xml映射文件中添加lazy="false"属性 3.使用op ...

  10. Myeclipse程序调试快捷键及步骤详解

    Myeclipse程序调试快捷键及步骤详解: 调试快捷键    Eclipse中有如下一些和运行调试相关的快捷键.    1. [Ctrl+Shift+B]:在当前行设置断点或取消设置的断点.    ...