„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
MyFile file = new MyFile();
file.initialize("c:\data\a.txt");
String text = file.readText();
MyFile file = new MyFile("c:\data\a.txt");
String text = file.readText();
MyFile file = new MyFile();
file.initialize("c:\data\", "a.txt");
String text = file.readText();
MyFile file = new MyFile("c:\data\", "a.txt");
String text = file.readText();
MyFile file = new MyFile();
file.initialize("c:\data\a.txt");

MyFile file2 = new MyFile();
file2.initialize( MyFile file, "a.txt");
String text = file2.readText();
MyFile file = new MyFile("c:\data\a.txt");


MyFile file2 = new MyFile(file, "a.txt");
String text = file2.readText();

„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 MyFile
{
  private String filename = null;

  public void initialize(String name)
  {
    this.filename = name;
  }

  public void initialize(String folder, String name)
  {
    this.filename = folder + name;
  }

  public void initialize(MyFile file, String name)
  {
    this.filename = file.getFolder() + name;
  }

…
}
class MyFile
{
  private String filename = null;

  public MyFile(String name)
  {
    this.filename = name;
  }

  public MyFile(String folder, String name)
  {
    this.filename = folder + name;
  }

  public MyFile(MyFile file, String name)
  {
    this.filename = file.getFolder() + name;
  }

…
}

„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.“