„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;
  }}
2
Aufgabe
Java Syntax,  Level 5Lektion 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.“