2016-06-10 10 views
1

Ich habe eine 2 Java-Klassen eine mit Hauptmethode und eine mit privaten Variablen & Methoden zum Abrufen und Einstellen. Also, meine Frage ist, können wir die gleiche Objektreferenzvariable in allen Setter (3 Setter) und eine andere Referenzvariable in allen Gettern (3) verwenden? Ich habe das benutzt und ich habe null Wert.Doppelte Referenzvariable in Java

Aber wenn ich 3 verschiedene Objektreferenzvariablen für 3 Getter und die gleiche 3 Objektreferenzvariable für Getter verwende, dann hat es funktioniert. Also, kann mir jemand dieses Konzept erklären?

Paket project1;

public class 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

Lässt etwas Code sehen. – ApolloSoftware

+3

Ein gutes Code-Beispiel sagt mehr als tausend Worte ... – assylias

+0

http://paste.ofcode.org/9KEX2aWbKNKD3wcsL4J8HQ sein pasteof.code Link: D –

Antwort

0

Der Grund Sie einen Nullwert bekommen, weil Sie nicht die Werte für diese Variablen für den zweiten Fall gesetzt haben. Zum Beispiel können, so dass Sie wie folgt vor:

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()); 

Diese beiden Linien:

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

wird Null zurück, weil man sie nicht aufgegeben haben noch einen Wert. Daher wurden die Variablen für obj2 und obj3 noch nicht instanziiert, und der Aufruf ruft null zurück.

+0

OK, ich denke, dass ich es bekommen: D gleiches Objekt verwenden für die Einstellung Der Wert kann verwendet werden, um den Wert zu erhalten: D –

+0

Yup! Wenn Sie den Wert in einem Objekt nicht setzen, werden Sie nicht in der Lage sein, es zu bekommen, und es wird nur 'null' zurückgeben – whatsGravity

+0

ok, gut, danke für Ihre Hilfe. Ich habe die Dinge gerade nicht verbunden, aber jetzt ist alles perfekt: D –

Verwandte Themen