Temp obj = new Temp(); // creates an instance of object type Temp
Hier Die Datenelemente i
, j
und sum
werden auf 0 initialisiert
obj.i = 1; // assigns value of Temp data member, i to 1
obj.j = 2; // assigns value of Temp data member, j to 2
Beachten Sie, dass der Wert des Datenelements sum
von Temp Objekt obj
noch 0
ist.
Zu machen, sum = i + j
, müssen Sie es zu initialisieren, wenn i
und j
initialisiert werden.
Schreiben Sie einfach obj.setSum()
Methode den Wert von sum
und obj.getSum()
danach, um den aktualisierten Wert davon retrive.
public class Temp {
static int i;
int j;
int sum = i+j;
public void setSum(){
sum = i + j;
}
public int getSum(){
return sum;
}
}
public class Main{
public static void main(String[] args){
Temp obj = new Temp();
obj.i = 1;
obj.j = 2;
obj.setSum();
System.out.println(obj.sum); //OR obj.getSum()
}
}
Siehe [* §4.12.5. Anfangswerte von Variablen *] (http://docs.oracle.com/javase/specs/jls/se8/html/jls-4.html#jls-4.12.5). – trashgod
"Leer" oder genauer gesagt, sie waren 0. Java-Primitive sind niemals "leer", sie werden auf 0 (oder falsch) initialisiert.Referenzen können "null" sein, was auch nicht wirklich "leer" ist, null ist ein Wert. – markspace
Um zu wiederholen, was Markspace sagte. In Java gibt es keine "leere" Variable oder kein leeres Feld. Jede Variable oder jedes Feld hat einen eindeutigen Wert *, wann immer Sie es beobachten können. Dieser Wert ist das Ergebnis einer eindeutigen Initialisierung (z. B. 'int foo = 42;') oder einer impliziten * Standardinitialisierung *. Entfernen Sie "leere Variable" aus Ihrem mentalen Modell und Ihrem Vokabular! –