Ausgaben auf der Konsole (static Varible)

kisyisup

Mitglied
Guten Tag, ich bin Anfängerin und schaue die Aufgaben aus alten Klausuren an. Hier ist die Aufgabe, die ich nicht verstehe. Ich muss angeben, was auf der Konsole gezeigt wird.

Java:
public class Mystery {
    public int x;
    private static int y = 0;
    Mystery (int x, int y) {
        this .x = x;
        this .y = y + this .x;
    }
    public static void main ( String [] args ) {
        Mystery mystery1 = new Mystery (3, 9);
        Mystery mystery2 = new Mystery (2, 4);
        System .out . println ( mystery1 .x);
        System .out . println ( mystery1 .y);
        System .out . println ( mystery2 .x);
        System .out . println ( mystery2 .y);
    }
}
Die richtige Antwort ist:
Code:
3
6
2
6

Ich verstehe nicht, warum ich 6 für y habe. Ich habe mit dem Code in Java rumgespielt. y ist statisch deklariert und deswegen hat keine Werte 9 und 4. Aber wie bekomme ich 6?

Ich freue mich sehr auf die Erklärung.
Danke
 
Zuletzt bearbeitet von einem Moderator:
Überlege Dir vor allem, welche Variablen denn hier was sind:
Java:
this.y = y + this.x;

Du hast ja x und y als Parameter und die statischen Variablen ...

Zur Not eine Zeile höher schauen - da hast Du this.x und x -> Wenn Du da weisst, was was ist, dann kannst Du es ggf. auf diese Zeile übertragen ...
 
Geh es einfach der Reihe nach durch. Der erste Aufruf für mystery1 mit den Parametern x=3 und y=9:
Instanzvariable x = Parameter x
Klassenvariable y = Parameter y + Instanzvariable x

Instanzvariable x hat den Wert 3.
Klassenvariable y hat den Wert 12.

Jetzt noch einmal für mystery2 mit den Parametern x=2 und y=4

Instanzvariable x hat den Wert ???
Klassenvariable y hat den Wert ???

Danach kommt die Ausgabe von mystery1 und mystery2.
 

Neue Themen


Zurück
Oben