public class Mensch
private String vorName;
public void setVorName(String vorName) {
// in diesem Block haben wir 2 Variablen mit namen "vorName".
// ohne das this bezieht es sich auf den Methodenparameter
// mit dem this auf die Instanzvariable.
this.vorName = vorName;
}
public String getVorName() {
// In diesem Fall ginge es auch ohne this, weil bereits der Name
// "vorName" eindeutig ist. Ich nutze es aber gerne trotzdem,
// um klar lesbar zu machen, dass ich hier auf die aktuelle Instanz referenziere.
return this.vorName;
}
Ja. Ich finde nur das Wort "Zeiger" etwas unglücklich, weil man da an Zeiger wie in C denkt. Die gibt es in Java nicht. Sage lieber "Referenz".Ist es ein zeiger?
Habe mein Beispiel erweitert. Da this immer die aktuelle Instanz referenziert, wird immer dasselbe referenziert. Eine Unterscheidung ist also nicht nötig.Wie kann this unterschieden werden , wenn man mehrere davon im Quellcode hat?
Wie kann this unterschieden werden , wenn man mehrere davon im Quellcode hat?
1. Ja, das stimmt, also Du hast Recht.Wenn du eine Klasse B hast, die A erweitert, und in A this schreibst, könnte sich das auf die Instanz der Klasse B beziehen (Verbessert mich, wenn ich falsch liegen sollte )
2. Falls das als Hinweis darauf gemeint war, dass es nicht unbedingt die Instanz sein muss, in der der Code steht,
Simmt, mach ich auch öftershüteüberhüte hat gesagt.:Alle pathologische Beispiele einmal nennen
abc.machWas(); // wird irgendwo so aufgerufen
[…]
public void machWas(){
// Im Falle des Aufrufs oben ist this das Objekt, auf das abc referenziert
}