资讯专栏INFORMATION COLUMN

java的可变参数

yeooo / 525人阅读

摘要:可变参数是之后出现的新特性使用前提当方法的参数列表数据类型已经确定但是参数的个数不确定就可以使用可变参数使用格式定义方法时使用修饰符返回值类型方法名数据类型变量名可变参数的原理可变参数底层就是一个数组根据传递参数个数不同会创建不同长度的数组

package com.itheima.demo04.VarArgs;
/*

可变参数:是JDK1.5之后出现的新特性
使用前提:
    当方法的参数列表数据类型已经确定,但是参数的个数不确定,就可以使用可变参数.
使用格式:定义方法时使用
    修饰符 返回值类型 方法名(数据类型...变量名){}
可变参数的原理:
    可变参数底层就是一个数组,根据传递参数个数不同,会创建不同长度的数组,来存储这些参数
    传递的参数个数,可以是0个(不传递),1,2...多个

*/
public class Demo01VarArgs {

public static void main(String[] args) {
    //int i = add();
    //int i = add(10);
    int i = add(10,20);
    //int i = add(10,20,30,40,50,60,70,80,90,100);
    System.out.println(i);

    method("abc",5.5,10,1,2,3,4);
}

/*
    可变参数的注意事项
        1.一个方法的参数列表,只能有一个可变参数
        2.如果方法的参数有多个,那么可变参数必须写在参数列表的末尾
 */
/*public static void method(int...a,String...b){

}*/

/*public static void method(String b,double c,int d,int...a){
}*/

//可变参数的特殊(终极)写法
public static void method(Object...obj){

}

/*
    定义计算(0-n)整数和的方法
    已知:计算整数的和,数据类型已经确定int
    但是参数的个数不确定,不知道要计算几个整数的和,就可以使用可变参数
    add(); 就会创建一个长度为0的数组, new int[0]
    add(10); 就会创建一个长度为1的数组,存储传递来过的参数 new int[]{10};
    add(10,20); 就会创建一个长度为2的数组,存储传递来过的参数 new int[]{10,20};
    add(10,20,30,40,50,60,70,80,90,100); 就会创建一个长度为2的数组,存储传递来过的参数 new int[]{10,20,30,40,50,60,70,80,90,100};
 */
public static int add(int...arr){
    //System.out.println(arr);//[I@2ac1fdc4 底层是一个数组
    //System.out.println(arr.length);//0,1,2,10
    //定义一个初始化的变量,记录累加求和
    int sum = 0;
    //遍历数组,获取数组中的每一个元素
    for (int i : arr) {
        //累加求和
        sum += i;
    }
    //把求和结果返回
    return sum;
}

//定义一个方法,计算三个int类型整数的和
/*public static int add(int a,int b,int c){
    return a+b+c;
}*/

//定义一个方法,计算两个int类型整数的和
/*public static int add(int a,int b){
    return a+b;
}*/

}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/75123.html

相关文章

  • 坑爹 Java 可变参数,把我整得够惨。。

    摘要:最近在写一个功能点,用了中的可变参数,真是把我搞得够惨。。我找到了阿里巴巴的开发手册中关于可变参数的规约。阿里巴巴也是不建议大家合作可变参数的,可知它带来的坑会有多坑。。 最近在写一个功能点,用了 Java 中的可变参数,真是把我搞得够惨。。 什么是可变参数? 就是方法参数用 Object... args 三个点形式,一个参数可以接收多个参数。 实际的代码就不帖了,来看这个示例吧: 示...

    Carson 评论0 收藏0
  • 第3章:抽象数据类型(ADT)和面向对象编程(OOP) 3.1数据类型和类型检查

    摘要:所有变量的类型在编译时已知在程序运行之前,因此编译器也可以推导出所有表达式的类型。像变量的类型一样,这些声明是重要的文档,对代码读者很有用,并由编译器进行静态检查。对象类型的值对象类型的值是由其类型标记的圆。 大纲 1.编程语言中的数据类型2.静态与动态数据类型3.类型检查4.易变性和不变性5.快照图6.复杂的数据类型:数组和集合7.有用的不可变类型8.空引用9.总结 编程语言中的数据...

    zhangqh 评论0 收藏0
  • 《Effective Java》,关于方法

    摘要:检查参数的有效性每当编写方法或者构造器时,应该考虑它的参数有哪些限制。为了保护实例的内部信息避免受到这种攻击,对于构造器的每个可变参数进行保护性拷贝是必要的,并且使用备份对象作为实例的组件,而不是使用原始的对象。 检查参数的有效性 每当编写方法或者构造器时,应该考虑它的参数有哪些限制。应该把这些限制写到文档中,并且在这个方法体开头处,通过显示的检查来实施这些限制。养成这样的习惯非常重要...

    worldligang 评论0 收藏0
  • Java程序员常犯10个错误

    摘要:原文出自本文总结了程序员常犯的个错误。可以看看为什么在中被设计成不可变父类和子类的构造函数以上这段代码出现编译错误,因为默认的父类构造函数未定义。如果程序员定义构造函数,编译器将不插入默认的无参数构造函数。 原文出自:http://www.programcreek.com/2014/05/top-10-mistakes-java-developers-make/ 本文总结了J...

    Andrman 评论0 收藏0
  • 5分钟学会Java9-Java11七大新特性

    摘要:来来来,花分钟看看的七大新特性,还有代码样例。本地是指方法内的变量声明。从开始,这个正式进入标准库包。同步请求会阻止当前线程。可喜的是,如果尝试改变不可变集合,会通过发出警告是在中引入的,增加了三个新方法。 现在Java有多元化的发展趋势,既有JS又有C++还有C#的影子,不学习那是不行滴。来来来,花5分钟看看Java9-Java11的七大新特性,还有代码样例。Java11 发布了,然...

    xuhong 评论0 收藏0

发表评论

0条评论

yeooo

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<