# this () im Konstruktor



## sousou (6. Feb 2010)

Guten morgen,



Zum morgen hab ich ne klitze frage. Und zwar zu this.

Das this dient ja ganz einfach dazu um Variablen die den selben Namen haben zu verdeutlichen an welche Variable der wert zugeordnet werden soll. Wird das auch Überdecken von Attributen genannt??? 

Beispiel bei meinen Code, werden den Klassenvariablen die werde zugewiesen die bei den Parametern beim Konstruktor stehen.



Aber was ich heute zum ersten mal sehe ist:

     this(graustufe,graustufe,graustufe);

Was wird hiermit gemacht? das sind irgendwie nach ner this Methode aus die 3 werte übergibt....


```
/* Farbe mit rgb-Werten */  
    class Farbe{
   
   
	   final int r, g, b; // red, green, blue
   
	
   /* Konstruktor mit 3 Farbwerten */
       Farbe(int r, int g, int b){
         this.r = r;
         this.g = g;
         this.b = b;
      }
   
	
	
   /* Konstruktor für Graustufe */
       Farbe(int graustufe){
         this(graustufe,graustufe,graustufe);
      }
```


lg


----------



## Murray (6. Feb 2010)

Das ist der Aufruf des anderen Konstruktors (der mit den drei Parametern)


----------



## MQue (6. Feb 2010)

```
this
```
 hat immer was im inneren der Klasse zu tun, super immer mit der Basis/Super Klasse.
Wenn man this. schreibt, dann meint man immer ein Objekt dieser Klasse, wenn man super schreibt dann immer das "Basisobject" this und super sind also Sichtweisen auf ein Objekt.


```
this(); //Konstruktoraufruf in der selben Klasse
super(); // Konstruktoraufruf der Basisklasse (schreibt der Compiler selber rein wenn du es nicht machst)

genauso wie:

this. ...
super. ...
```


----------



## sousou (6. Feb 2010)

Dann haben ja in dem Beispiel r,g,b alle den selben wert. Wenn der parameter int graustufe im unteren Konstruktor beispielsweise den Wert 10 hat, dann wird der Wert 10 im oberen Konstruktor jeweils int r, int g und int b zugewiesen. 

Diese zuordnung bedeutet gleichzeitig das die Klassenvariablen welche mit final deklariert sind ebenfalls 10 sind wegen diese mit this zugeordnet werden.


```
class Farbe{
   
   
       final int r, g, b; // red, green, blue
   
    
   /* Konstruktor mit 3 Farbwerten */
       Farbe(int r, int g, int b){
         this.r = r;
         this.g = g;
         this.b = b;
      }
   
    
    
   /* Konstruktor für Graustufe */
       Farbe(int graustufe){
         this(graustufe,graustufe,graustufe);
      }
```

Stimmts so?

lg


----------



## Ziegenpeter (6. Feb 2010)

Das ist korrekt.


----------

