Soweit ich das verstanden habe, benötigt man die this-Referenz für 2 Sachen:
1: Man übergibt in einer Methode (und/oder Konstruktor) Parameter (lokale Variablen), die gleich heissen wie eine Instanzvariable
Dient nur dazu, dass man die Instanzvariable und die lokalen Variablen unterscheiden kann, da sie gleich heissen.
ist Objektvariable.x und
ist die lokale Variable.
2: Man ruft in einem Konstruktor einen überladenen Konstruktor in der gleichen Klasse auf (z.B. um Standardwerte beim Erzeugen eines Objektes festzulegen)
Hier ist Verwendung 1 + 2 zusammen
Wenn man ein Objekt erzeugt, kriegt es ja alle Instanzvariablen und alle Methoden von der Klasse mitgegeben, also ist jeder Aufruf vom Objekt auf eine Methode auf das Objekt bezogen, wozu braucht man dann noch
innerhalb einer Methode?
Es muss ja einen Grund geben, wieso man dauernd
schreibt, auch ohne die beiden Fälle.
Wenn jemand ein einfaches Beispiel hätte, wäre ich sehr dankbar, ich bin mir nämlich ziemlich sicher, dass ich was sehr wichtiges bei
übersehen habe :rtfm:.
1: Man übergibt in einer Methode (und/oder Konstruktor) Parameter (lokale Variablen), die gleich heissen wie eine Instanzvariable
Java:
public class Foo {
privat int x;
}
public class Bar extends Foo {
public Foo(int x) {
this.x = x;
}
}
Code:
this.x
Code:
x
2: Man ruft in einem Konstruktor einen überladenen Konstruktor in der gleichen Klasse auf (z.B. um Standardwerte beim Erzeugen eines Objektes festzulegen)
Hier ist Verwendung 1 + 2 zusammen
Java:
public class Foo {
privat int x;
privat int y;
public Foo {
this(2, 3)
}
public Foo (int x, int y) {
this.x = x;
this.y = y;
}
}
Wenn man ein Objekt erzeugt, kriegt es ja alle Instanzvariablen und alle Methoden von der Klasse mitgegeben, also ist jeder Aufruf vom Objekt auf eine Methode auf das Objekt bezogen, wozu braucht man dann noch
Code:
this
Es muss ja einen Grund geben, wieso man dauernd
Code:
this.x = x
Wenn jemand ein einfaches Beispiel hätte, wäre ich sehr dankbar, ich bin mir nämlich ziemlich sicher, dass ich was sehr wichtiges bei
Code:
this
Zuletzt bearbeitet: