Classe point this.x methode

wir haben in der Vorlesung eine classe point geschrieben
mit 2 variablen private double x ,und private double y 1 default konstruktor und get, set methoden
und was neues für mich nämlich
this.x = 0 und this.y = 0 in der konstruktor methode
und auch überall in der classe und in set, get mehtoden

ich habe nicht verstanden was this.x überhaup bedeutet und wann man das benutzen muss ,
müssen immer default konstruktoren this.etwas haben ?
danke

Hallo!

int a;
int b;

public void doSomething(int a) {
this.a = a; // a bezeichnet die Variable aus der Methode
// this.a bezeichnet die Variable aus der Klasse
a = a; // würde also nichts bewirken
this.a = this.a // genauso wenig, wie dies.

this.b = a; // hier ist die Variable b eindeutig.
b = a; // dies ist aslo gleichbedeutend
}

Der Compiler verwendet zuerst die Variablen der Methode, erst dann die der Klasse. Mit this kannst du sie also unterscheiden.
this ist ein Objekt der Klasse, die du gerade benutzt. Du kannst alle Klassenvariablen und Methoden deiner Klasse damit ansprechen. Du kannst es aber auch weglassen (so wie früher).

Grüße,
Keks

Ach ja…

müssen immer default konstruktoren this.etwas haben ?

Nein, nur wenn die Klassenvariable den gleichen Namen hat, wie die im Konstruktor. Das gilt auch für Methoden.

public class Test {
int k;
public Test(int k) {
this.k = k; // Hier ist eine Differenzierung nötig…
}
}

public class Test {
int k;
public Test(int n) {
k = n; // …hier nicht (aber natürlich erlaubt)
}
}

danke daß du immer antwortest ich stelle so viele fragen
vielleicht willst du wissen warum ich versthe nicht sofort alles in der vorlesung , ich studiere auf deutsch , eine sprache die ich vor ein paar jahren nicht mal konnte