Home > Informatik > Stufe EF > Lernbausteine

Konstruktoren

Ein Konstruktor ist eine spezielle manipulierende Methode, die immer dann aufgerufen wird, ein ein neues Objekt einer Klasse erzeugt wird.

Schauen wir uns einmal den Konstruktor der Klasse Circle aus der Folge 2 näher an.

   public Circle()
   {
      diameter = 30;
      xPosition = 20;
      yPosition = 60;
      color = "blue";
      isVisible = false;
   }

Eigentlich ist dieser Code recht leicht zu verstehen. Die fünf Attribute der Klasse werden auf Anfangswerte gesetzt. Der Durchmesser diameter beispielsweise wird auf den Wert 30 gesetzt; gemeint sind hier 30 Pixel. Das heißt, jedes Objekt der Klasse Circle, das wir mit new Circle() erzeugen, hat zunächst einen Durchmesser von 30 Pixeln. Entsprechend hat jedes neue Circle-Objekt eine X-Position von 20, eine Y-Position von 60, die Farbe Blau und ist nicht sichtbar.

Alle neuen Circle-Objekte haben also nicht nur die gleichen Attribute, sondern sogar die gleichen Attributwerte. Das führt dazu, dass beim Erzeugen mehrerer Kreise alle Kreise die gleiche Farbe, den gleichen Durchmesser und die gleiche Position auf der Zeichenfläche haben. Wenn man also zwei oder drei Kreise nacheinander erzeugt, sieht man nur einen einzigen Kreis.

Wir wollen nun einen Konstruktor schreiben, in dem zwei dieser Circle-Objekte erzeugt werden. Einen solchen Konstruktor benötigen wir zum Beispiel in der Folge 2, und zwar in der Klasse Zeichnung.

   public class Zeichnung
   {
      Circle sonne, mond;

      public Zeichnung
      {
         sonne = new Circle();
         mond  = new Circle();
      }
      ...
   }

Die Aufgabe dieses Konstruktors ist es, zwei Objekte sonne und mond der Klasse Circle zu erzeugen. Mehr macht der Konstruktor nicht! Die Objekte werden noch nicht einmal sichtbar gemacht oder auf andere Weise manipuliert. Dazu werden eigene Methoden für die Klasse Zeichnung geschrieben.

Wenn Sie mehr über Konstruktoren wissen wollen, können Sie sich die Lexikon-Seite "Konstruktor" anschauen, die sich aber eher an fortgeschrittenere Schüler(innen) richtet.