public MyClass() {
this(0);
}
public MyClass(int value) {
this.value=value;
}
Neben dem angesprochenen Aufruf von anderen Konstruktoren kannst Du damit auch Exemplarvariablen benutzen, die sonst von formalen Parametern überschattet würden. Hier ist mal ein fehlerhaftes Beispiel:pourki hat gesagt.:Hallo, ich verstehen nicht ganz die Bedeutung von "this" innerhalb der Konstrukoteren.
public class Schatten
{
private int x;
public Schatten(int x)
{
// Hier wird dem formalen Parameter x sein eigener Wert zugewiesen,
// was ziemlich sinnlos ist.
x = x;
}
public int getX()
{
return x;
}
}
public class Schatten
{
private int x;
public Schatten(int x)
{
// Wir wollen eigentlich an das x rankommen,
// welches wir oben als Exemplarvariable deklariert hatten.
this.x = x;
}
public int getX()
{
return x;
}
}
Hm, also wenn Du die Begriffe Klasse, Objekt, Konstruktor, Exemplarvariable noch nicht so recht in Einklag bringen kannst, dann solltest Du erstmal ein Buch lesen.pourki hat gesagt.:Ich kann jedoch noch nicht, den Zusammenhang wirklich erkennen/verstehen.
public class Schatten
{
private int x; //diese Variable ist global in der ganzen Klasse gültig
//Das hier ist der Konstruktor, da er aufgerufen wird, wenn die Klasse instanziiert wird,
//wird er gerne benutzt, um Werte zu initialisieren (also keine einfache Methode!)
public Schatten(int x) //bei int x handelt es sich um einen Parameter, den der K. vom Aufrufer übergeben bekommt
{
// Wir wollen eigentlich an das x rankommen,
// welches wir oben als Exemplarvariable deklariert hatten.
// hier wird dem x links oben also den Wert vom Parameter x zugewiesen
this.x = x;
}
public int getX()
{
return x;
}
}
Schatten schattenvariable = new Schatten(9) ;
int wert = schattenvariable.getX() ;
System.out.println(wert) ;
public class Schatten { //Um an das Beispiel meines Vorposters anzuknüpfen
private int x;
public Schatten() { //Standardkonstruktor
this(1); //Du möchtest jetzt, dass die Variable x auf jeden Fall initialisiert wird. Anstatt das
//in dieser Methode zu machen, rufst du ganz einfach den parametrisierten Konstruktor mit einem bestimmten Parameter auf.
}
public Schatten(int x) {
this.x = x;
}
}
Ich meine muss man den unten genannten Code hacken, um an X zu kommen.
Schatten sch = new Schatten();
...
int i = sch.x;