歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Java類類型參數

上節說明了Java類類型變量和基本變量的賦值方式的不同(http://www.linuxidc.com/Linux/2013-10/91074htm),這次就談談類類型參數和基本類型參數之間的差別。

首先要明白什麼是類類型參數。類類型參數,方法定義開始位置方法名稱後面小括號中給定形式參數。類似於類類型變量,類類型參數作為一個局部變量,保存了類類型對象的內存地址。類類型參量實例變量的值在方法中是可以改變的,而基本類型參量的值卻不能。下面給段代碼加以說明:

 /**
 * Comments:方法對類類型參數值及基本類型參數值的影響實例
 * @author 塞上名豬
 * Create Time:2013-09-15
 *
 */
public class ClassTest {
    private int num;
    public int getNum() {
        return num;
    }
    public void setNum(int num) {
        this.num = num;
    }
    public void change(int n){
        n=2;
    }
    public void change(ClassTest n){
        n.setNum(2);
    }
    public void change(ClassTest c1,ClassTest c2){
        c2=c1;
    }
    public static void main(String[] args) {
        ClassTest class1=new ClassTest();
        class1.setNum(1);
        class1.change(class1);                      //傳入類類型class1,其中class1.getNum=1
        System.out.println(class1.getNum());        //輸出類類型class1,其中class1.getNum=2
                                                         
        class1.setNum(1);
        class1.change(class1.getNum());            //傳入基本類型class1.getNum=1
        System.out.println(class1.getNum());        //輸出基本類型class1.getNum=1
                                                         
        class1.setNum(2);
        ClassTest class2=new ClassTest();
        class2.setNum(1);
        class2.change(class1, class2);              //傳入類類型class1,其中class1.getNum=2
                                                    //傳入類類型class2,其中class2.getNum=1
        System.out.println(class2.getNum());        //輸出類類型class2,其中class2.getNum=1
    }
}

從代碼中可以看出,類類型參量的值在方法中改變,並直接影響到了方法外參數的值,但基本類型參量的值卻沒有被修改。而且,當方法將一個對象直接用另一個對象代替,也失敗了。
注:方法外稱為參量,方法內稱為參數(本人的理解)。

Copyright © Linux教程網 All Rights Reserved