2016-06-10 59 views
1

我有一個2個java類,一個帶有主要方法,另一個帶有私有變量&獲取和設置方法。所以,我的問題是我們可以在所有setter(3個setters)中使用相同的對象引用變量,並且在所有getter(3)中使用不同的引用變量? 我用過,我得到了空值。java中的重複引用變量

但是,當我使用3個不同的對象引用變量爲3個獲得者和相同的3個對象引用變量在獲取者然後它工作正常。那麼,有人能解釋我這個概念嗎?

package project1;

公共類Encapsulationjerry1 {

public static void main(String[] args) 
{ 
    System.out.println("Now, we are gonna test our Encapsulation"); 

    // I gave different variables for all setters and same respective variables for getters. This is working fine. 
    Encapsulationtom1 obj1 = new Encapsulationtom1(); 
    Encapsulationtom1 obj2 = new Encapsulationtom1(); 
    Encapsulationtom1 obj3 = new Encapsulationtom1(); 

    obj1.setDesignation("Lead Designer"); 
    obj2.setEmployeeId(23452); 
    obj3.setEmployeeName("Meliodas"); 

    System.out.println("The designation is "+ obj1.getDesignation()); 
    System.out.println("The Employee Id is "+ obj2.getEmployeeId()); 
    System.out.println("The Employee Name is "+ obj3.getEmployeeName()); 

    // But when i give same variable to all setters and a different variable to all getters, it gave me null value. WHY? 
} 

}

+2

讓我們看看一些代碼。 – ApolloSoftware

+3

一個很好的代碼示例是勝過千言萬語...... – assylias

+0

http://paste.ofcode.org/9KEX2aWbKNKD3wcsL4J8HQ 其pasteof.code鏈接:d –

回答

0

你得到一個空值的原因是因爲你還沒有針對第二種情況下這些變量設定的值。例如,可以讓所以你做到以下幾點:

Encapsulationtom1 obj1 = new Encapsulationtom1(); 
    Encapsulationtom1 obj2 = new Encapsulationtom1(); 
    Encapsulationtom1 obj3 = new Encapsulationtom1(); 

    obj1.setDesignation("Lead Designer"); 
    obj1.setEmployeeId(23452); 
    obj1.setEmployeeName("Meliodas"); 

    System.out.println("The designation is "+ obj1.getDesignation()); 
    System.out.println("The designation is "+ obj2.getEmployeeId()); 
    System.out.println("The designation is "+ obj3.getEmployeeName()); 

這兩條線:

System.out.println("The designation is "+ obj2.getEmployeeId()); 
    System.out.println("The designation is "+ obj3.getEmployeeName()); 

將返回Null因爲你還沒有給他們一個值呢。因此,obj2obj3的變量尚未實例化,調用它們將返回null

+0

OK,我想我明白了:d 相同的對象用於設置該值可用於獲取值:D –

+0

是!如果你沒有在對象中設置這個值,你將無法得到它,它會返回'null' – whatsGravity

+0

好,謝謝你的幫助。我只是暫時沒有連接這些東西,但現在它完美無缺:D –