Java可变个数形参
@素素~ 人气:0前言
小小知识,不值一提,了解了也不能让你提高身价,但是不了解你就是比别人少知道点!事儿就是这么个事儿,直接正题吧! 直接看代码
演示
优先级
当方法1无参和方法2有参存在时,执行上面的main方法调用并观看结果:
当只有可变参数方法存在时,再重新执行看看
多个参数传参情况
一是多个参数逗号隔开传参
二是直接可以传数组
总结
①调用的时候参数可不传或传多个
②如果有无参或者有可数个参数的重载方法存在时,调用同名方法时,可变参数方法的优先级靠后,没有其他重载方法,则自动调用可变参数方法
③与形参类型相同的数组直接不能构成重载,可以认为,可变参数代替了数组参数
④在参数方法的形参中,可变个数形参必须声明在末尾,并且最多只能声明一个可变形参
另外:
简单测试代码
package com.liu.susu.other; /** * 可变形参方法 * 注意:①调用的时候参数可不传或传多个 * ②如果有无参或者有可数个参数的重载方法存在时,调用同名方法时,可变参数方法的优先级靠后, * 没有其他重载方法,则自动调用可变参数方法 * ③与形参类型相同的数组直接不能构成重载,可以认为,可变参数代替了数组参数 * ④在参数方法的形参中,可变个数形参必须声明在末尾,并且最多只能声明一个可变形参 */ public class Test { public static void main(String[] args) { Test t = new Test(); // t.playGames(); // t.playGames("麦兜"); t.playGames("麦兜","贝塔","酥妮"); t.playGames(new String[]{"点点","阿苔"}); } //1.无参方法 public void playGames(){ System.out.println("playGames()"); } //2.有一个参数方法 public void playGames(String name){ System.out.println(name+"-->playGames(String name)"); } //3.可变形参方法 public void playGames(String ... name){ System.out.println("playGames(String ... name)"); for (int i = 0; i < name.length; i++) { System.out.println(name[i]+"--->加入游戏……"); } } /** * 4.--|在参数方法的形参中,可变个数形参必须声明在末尾,并且最多只能声明一个可变形参 * --|可变形参参数的类型不要与前面类型一致,比如下面的dogNum的类型尽量不要用String, * --|①是意义不大,②是在调用时与上面第3方法冲突,不知道调的哪个 */ public void playGames(int dogNum,String ... name){ System.out.println("playGames(String dogNum,String ... name)"); } // public void playGames(String[] name){ // // } }
加载全部内容