Java 傳遞可變參數和方法重載


形式:類型... 參數名

示例:public void show(int... a) {};

可變參數在方法中被當作數組來處理

可變參數傳值的四種方式:

  • 一個值也不傳,可變參數會接收到長度為0的數組
  • 傳null,可變參數會接收到null
  • 傳數組,可變參數會接收到數組
  • 傳1個到多個數組元素值,可變參數會接收到數組
public class Test {
    
    public void changeParam(int... a) {
        System.out.println("數組長度為:" + a.length);
    }
    
    public static void main(String[] args) {
        Test m1 = new Test();
        
        //一個值都不傳遞
        m1.changeParam();
        //傳數組對象
        m1.changeParam(new int[]{5,7,9,1});
        //傳多個元素值,會當成數組處理
        m1.changeParam(1,2,3,4,5);
        //傳null,但是這個參數不可用
        m1.changeParam(null);
    }
}

 

可變參數和數組作為方法參數時的區別:

從個數來看,可變參數只能有一個,數組可以有多個

從定義位置來看,可變參數只能定義在參數列表的末尾,數組可以在任何位置

從傳參的形式來看,可變參數可以傳數組、null、0個參數、一到多個參數,數組可以傳數組引用、數組對象、null

 

方法重載:方法名相同,但是參數列表不一致,重載的方法會根據參數來匹配調用

public class Test {
    
    public void show(int a) {
        System.out.println("帶有一個參數的方法");
    }
    public void show(int... a) {
        System.out.println("帶有可變參數的方法");
    }
    
    public static void main(String[] args) {
        Test m1 = new Test();
        
        //public void show(int... a)
        m1.show();
        //public void show(int a)
        m1.show(6);//優先調用參數匹配的方法
        //public void show(int... a)
        m1.show(new int[]{5,7,9,1});
        //public void show(int... a)
        m1.show(1,2,3,4);
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM