„Jetzt ist es höchste Zeit, dass ich dir von Konstruktoren erzähle. Das ist ein wirklich einfaches Konzept. Programmierer haben eine Abkürzung für die Erstellung und Initialisierung von Objekten erfunden.

Ohne Konstruktor Mit Konstruktor
MeineDatei datei = new MeineDatei();
datei.initialisieren("c:\daten\a.txt");
String text = datei.textEinlesen();
MeineDatei datei = new MeineDatei("c:\daten\a.txt");
String text = datei.textEinlesen();
MeineDatei datei = new MeineDatei();
datei.initialisieren("c:\daten\", "a.txt");
String text = datei.textEinlesen();
MeineDatei datei = new MeineDatei("c:\daten\", "a.txt");
String text = datei.textEinlesen();
MeineDatei datei = new MeineDatei();
datei.initialisieren("c:\daten\a.txt");

MeineDatei datei2 = new MeineDatei();
datei2.initialisieren(MeineDatei datei, "a.txt");
String text = datei2.textEinlesen();
MeineDatei datei = new MeineDatei("c:\daten\a.txt");


MeineDatei datei2 = new MeineDatei(datei, "a.txt");
String text = datei2.textEinlesen();

„Ich habe gerade erst die Initialisierungsmethode kennengelernt…“

„Sieh genauer hin. Mit Konstruktoren ist der Code übersichtlicher und kompakter.“

„So ist es. Ich habe eine Frage. Ich weiß, wie man eine Initialisierungsmethode innerhalb einer Klasse schreibt, aber wie schreibt man einen Konstruktor?“

„Sieh dir zuerst dieses Beispiel an:“

Ohne Konstruktor Mit Konstruktor
class MeineDatei
{
  private String dateiname = null;

  public void initialisieren(String name)
  {
    this.dateiname = name;
  }

  public void initialisieren(String ordner, String name)
  {
    this.dateiname = ordner + name;
  }

  public void initialisieren(MeineDatei datei, String name)
  {
    this.dateiname = datei.ordnerAbrufen() + name;
  }

…
}
class MeineDatei
{
  private String dateiname = null;

  public MeineDatei(String name)
  {
    this.dateiname = name;
  }

  public MeineDatei(String ordner, String name)
  {
    this.dateiname = ordner + name;
  }

  public MeineDatei(MeineDatei datei, String name)
  {
    this.dateiname = datei.ordnerAbrufen() + name;
  }

…
}
undefined
2
Aufgabe
Java Syntax, Level 5, Lektion 8
Gesperrt
Code-Eingabe
Manchmal darf man gar nicht nachdenken, man muss es einfach raushauen! Auch wenn es sich paradox anhört, manchmal „erinnern“ sich deine Finger besser als dein bewusster Verstand. Deshalb wirst du es im Rahmen der Schulung im geheimen CodeGym-Zentrum manchmal mit Aufgaben zu tun bekommen, bei denen du Code eingeben musst. Wenn du Code eingibst, gewöhnst du dich an die Syntax und sammelst ein wenig dunkle Materie. Außerdem tust du etwas gegen deine Faulheit!

„Es ist ganz einfach, einen Konstruktor innerhalb einer Klasse zu deklarieren. Ein Konstruktor ähnelt einer Initialisierungsmethode, nur mit zwei Unterschieden:

1. Der Name eines Konstruktors entspricht dem Klassennamen (anstelle von initialisieren).

2. Ein Konstruktor hat keinen Typ (es wird kein Typ angegeben).“

„OK, also ist es wie initialisieren, aber mit ein paar Unterschieden. Ich glaube, jetzt verstehe ich es.“