2010-11-11 4 views
9

Was bedeutet this() in Java?Was bedeutet das() in Java?

Es sieht es nur dann gültig ist, wenn

setzen
this(); 

in der Klasse mit variabler Fläche.

Hat jemand eine Idee?

Danke.

+0

Ich beantwortete eine ähnliche Frage auf einem anderen Beitrag. Könnte hilfreich sein http://stackoverflow.com/questions/15867722/java-this-method-confusion – Avi

Antwort

7

Dies bedeutet, dass Sie den Standardkonstruktor von einem anderen Konstruktor aufrufen. Es muss die erste Aussage sein, und Sie können nicht super() verwenden, wenn Sie haben. Es ist ziemlich selten, dass es benutzt wird.

+0

@Byron, Prost. –

1

Der Aufruf this() ruft den Konstruktor der Klasse ohne Argumente auf.

Sie würde es so verwenden:

public MyObj() { this.name = "Me!"; } 
public MyObj(int age) { this(); this.age = age; } 
+1

oh Gott ... mach das nicht! public MyObj() {this ("Ich!");} public MyObj (Zeichenkette nm) {this (name, 0);} MyObj (Zeichenkette nm, int a) {Name = nm; Alter = a; } – TofuBeer

+0

'Funktion' ist kein Java Schlüsselwort – barrowc

+0

@barrow: Meine Sprachen wieder mischen, danke. –

3

Es bedeutet "Aufruf Konstruktor, der ohne Argumente ist". Beispiel:

public class X { 
    public X() { 
     // Something. 
    } 
    public X(int a) { 
     this(); // X() will be called. 
     // Something other. 
    } 
} 
+0

Sehr gut erklärt. Vielen Dank – Jay

0

eine Klasse einen eigenen Standardkonstruktor aufrufen. Es ist häufiger, es mit Argumenten zu sehen.

6

Dies ist ein Aufruf des Konstruktors ohne Argumente, den Sie als erste Anweisung in einem anderen Konstruktor aufrufen können, um zu vermeiden, dass Code dupliziert wird.

public class Test { 

     public Test() { 
     } 

     public Test(int i) { 
      this(); 
      // Do something with i 
     } 

}