# Konstruktoren (was, wozu, wieso, warum)



## Guest (17. Dez 2003)

Hallo!
Da ich 'immer' noch ein JAVA-Anfänger bin, frage ich (vielleicht) etwas Blödes.
Wozu sind Konstruktoren gut? Oder besser gesagt: was sind Konstruktoren und was machen die?
Es wäre sehr nett, wenn mir jemand etwas dazu sagen könnte. Die Suche hab ich schon benutzt, die hat mir leider nichts vernünftiges ausgespuckt.
Danke!

MfG

ganst


----------



## HeyMan (17. Dez 2003)

Try this:

Buch: Java Insel - Konstruktoren Part

gruß
Heyman[/url]


----------



## Dwaine (17. Dez 2003)

Der Konstruktor ist eine Methode wird aber nicht wie alle gängigen Methoden aufgerufen.
D.h dass in der Kopfzeile kein Rückgabewert steht (wie void etc).
Aufgerufen wir der Konstruktor wenn ein Objekt erzeugt wird.

Er initialisiert das Objekt und weist somit jedem Attribut einen
sinnvollen Wert zu.


----------



## Campino (9. Jan 2004)

Es gab noch keine Antwort auf die Frage wozu Konstruktoren nützlich sind, hier ist ein Antwortversuch

Nun, stell dir vor du hast eine class die auf einer Appletoberflache Zeichnen soll zb:


```
class Zeichne{
Applet zeichenflaeche;

public Zeichne(Applet master){//Konstruktor
this.zeichenflaeche=master;
}

public void draw(){
Graphics g=zeichenflaeche.getGraphics();//liefert ein Graphics ueber das auf dem Applet gezeichnet werden kann

g.drawOval(0, 0, 100, 100);
}
}
```

Im Konstruktor wird das Applet auf dem gezeichnet werden soll der Variable zeichenflaeche übergeben. Dies führt dazu das im applet selbst der Aufruf:

```
Zeichne z=new Zeichne(Appletname);
```
ausreicht um das Applet an die class zu übergeben. Natürlich ginge das auch so:


```
class Zeichne{
Applet zeichenflaeche;

public void setApplet(Applet master){//Konstruktorfunktion als eigene Methode
this.zeichenflaeche=master;
}

public void draw(){
Graphics g=zeichenflaeche.getGraphics();//liefert ein Graphics ueber das auf dem Applet gezeichnet werden kann

g.drawOval(0, 0, 100, 100);
}
}
```

Diese Version birgt aber mehr Schreibarbeit und ist fehleranfälliger. Statt

```
Zeichne z=new Zeichne([i]Appletname[/i]);
```

wird jetzt

```
Zeichne z=new Zeichne();
z.setApplet([i]Appletname[/i]);
```
benötigt, das ist erstens eine Zeile mehr und Zweitens muss diese Zeile sich in einer Methode befinden(z.b. init) was bewirkt das man sie leicht vergießt.


----------



## Nobody (10. Jan 2004)

so das wurde jetzt ins faq aufgenommen


----------

