„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;
}
…
}
|
„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.“
GO TO FULL VERSION