大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java可變長參數列表詳解

Java可變長參數列表詳解

更新時間:2019-09-05 10:39:11 來源:動力節(jié)點 瀏覽2722次

  

今天動力節(jié)點java培訓機構小編為大家介紹“Java可變長參數列表詳解”,希望此文能夠幫助到大家,下面就隨小編一起看看Java可變長參數列表詳解的內容吧。


timg (3).jpg


Java中定義了變長參數,允許在調用方法時傳入不定長度的參數。


  Java可變長參數定義及調用


  在定義方法時,在最后一個形參后加上三點 …,就表示該形參可以接受多個參數值,多個參數值被當成數組傳入。上述定義有幾個要點需要注意:


  可變參數只能作為函數的最后一個參數,但其前面可以有也可以沒有任何其他參數


  由于可變參數必須是最后一個參數,所以一個函數最多只能有一個可變參數


  Java的可變參數,會被編譯器轉型為一個數組


  變長參數在編譯為字節(jié)碼后,在方法簽名中就是以數組形態(tài)出現的。這兩個方法的簽名是一致的,不能作為方法的重載。如果同時出現,是不能編譯通過的。可變參數可以兼容數組,反之則不成立


public void foo(String...varargs){}


foo("arg1", "arg2", "arg3");


//上述過程和下面的調用是等價的

foo(new String[]{"arg1", "arg2", "arg3"});

 

例如,求任意個整數的乘積。


package exercise;


public class product {

    public static int func(int... args){

        int ret = 1;

        for(int i:args)  ret *= i;

        return ret;

    }

    public static void main(String[] args){

        System.out.println(func(1,2,3));

        System.out.println(func(2,2,2,2,2,2));

        System.out.println(func(100,1000));

    }

}


  由于可變長參數就是被編譯器轉化為數組實現的,我們完全可以寫成以數組做參數的形式:


package exercise;


public class product {

    public static int func(int[] args){

        int ret = 1;

        for(int i:args)  ret *= i;

        return ret;

    }

    public static void main(String[] args){

        System.out.println(func(new int[]{1,2,3}));

        System.out.println(func(new int[]{2,2,2,2,2,2}));

        System.out.println(func(new int[]{100,1000}));

    }

}



方法重載


優(yōu)先匹配固定參數


調用一個被重載的方法時,如果此調用既能夠和固定參數的重載方法匹配,也能夠與可變長參數的重載方法匹配,則選擇固定參數的方法:


public class Varargs {


    public static void test(String... args) {

        System.out.println("version 1");

    }


    public static void test(String arg1, String arg2) {

        System.out.println("version 2");

    }

    public static void main(String[] args) {

        test("a","b");     //version 2 優(yōu)先匹配固定參數的重載方法

                test();    //version 1

    }

}


匹配多個可變參數


  調用一個被重載的方法時,如果此調用既能夠和兩個可變長參數的重載方法匹配,則編譯出錯:


public class Varargs {


    public static void test(String... args) {

        System.out.println("version 1");

    }


    public static void test(String arg1, String... arg2) {

        System.out.println("version 2");

    }

    public static void main(String[] args) {

        test("a","b");  //Compile error

    }

}


以上就是動力節(jié)點java培訓機構小編介紹的“Java可變長參數列表詳解”的內容,希望對大家有幫助,更多java最新資訊內容繼續(xù)關注動力節(jié)點java培訓機構官網,每天會有精彩內容分享與你。


相關免費視頻教程推薦


java編程入門教程下載——可變長參數:http://www.dabaquan.cn/xiazai/2528.html


提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 久久国产午夜精品理论片34页 | 哪里可以看毛片 | chinese国产人妖视频网站 | 国产精品免费看久久久 | 国产香蕉网 | 国产精品亚洲欧美一级久久精品 | 女人18毛片特级一级免费视频 | 国产欧美日韩中文字幕 | 精品国产高清自在线一区二区三区 | 日日射日日干 | 亚洲视频三区 | 精品国产自 | 精品国产日韩一区三区 | 99热久久精品国 | 中文字幕在线免费观看 | 成人影院午夜久久影院 | 操碰在线视频 | 国产亚洲精品久久久久久久网站 | 日本爽快片100色毛片 | 奇米四色视频 | 国产剧情自拍 | 91在线视屏| 看a网址| 一级毛片人与动免费观看 | 欧美国产日韩一区二区三区 | 97视频免费公开成人福利 | 精品一区二区在线欧美日韩 | 97国产 | 欧美精品免费在线 | 国产三级做爰在线播放最爱 | 伊人久久大香焦 | 国产伦理久久精品久久久久 | 狠狠插天天干 | 欧美在线精品一区二区三区 | 欧美一级aⅴ毛片 | 亚洲日韩欧美综合 | 久久久福利 | 欧美色插 | 四虎影视精品永久免费 | 日本一级一片免在线观看 | 色综合久久88色综合天天小说 |