【蛻變之路】第8天 值傳遞 (2019年2月26號)

     Hello,大家好!我是程序員阿飛!今天呢,女友送了我一套機械鍵盤,很開心。我們主要學習一下Java中最常見的知識點:值傳遞。好了,廢話不多說了,我們直接進入今天的主題。

    1、形參與實參

     答:形參是指在定義函數名和函數體的時候使用的參數,目的是爲了接受調用該函數時傳入的參數。實參是指在主調函數中調用一個有參函數時,函數名後面括號中的參數。

    public static void main(String  [ ] args){

        Test test = new Test();

        test.method("zhutou");//zhutou爲實際參數

    }

      public void Method(String str){  //str 爲形式參數

          System.out.println("Hello World!");

      }

    2、值傳遞、引用傳遞

     答:值傳遞是指在調用函數時將實際參數複製一份傳遞到有參函數中,這樣在函數中對參數進行修改,將不會影響到實際參數。引用傳遞是指在調用函數時將實際參數的地址傳遞到函數中,那麼在函數中對參數進行修改將影響到實際參數。

    根本區別:值傳遞會創建副本,引用傳遞不創建副本。

     public static void main(String[] args) {

           ParamTest pt = new ParamTest();   

           int i = 10;

           pt.pass(i );

           System.out.println("print in main , i is " + i);

        }

        public void pass(int j) {

             j = 20;

            System.out.println("print in pass , j is " + j);

        }

        print in pass , j is 20

        print in main , i is 10


    public static void main(String[] args) {

         ParamTest pt = new ParamTest();

         User hollis = new User();

         hollis.setName("Hollis");

         hollis.setGender("Male");

         pt.pass(hollis);

        System.out.println("print in main , user is " + hollis);

    }

    public void pass(User user) {

         user = new User();

         user.setName("hollischuang");

         user.setGender("Male");

         System.out.println("print in pass , user is " + user);

    }

    print in pass , user is User{name='hollischuang', gender='Male'}

    print in main , user is User{name='Hollis', gender='Male'}

所以,上面的參數其實是值傳遞,把實參對象引用的地址當做值傳遞給了形式參數。

參考地址:https://blog.csdn.net/bjweimengshu/article/details/79799485


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章