CodeGym /Kurse /Java Syntax /Konstruktoren

Konstruktoren

Java Syntax
Level 5 , Lektion 8
Verfügbar

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

Kommentare (2)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
20 Juli 2023

this.dateiname = name;
Wieso wird this. verwendet? Ich dachte, es wird nur benötigt, wenn die Methode selbst auch eine Variable des gleichen Namens verwendet? Also this.dateiname = dateiname;
Lisa Level 41
30 Juli 2021
statt

datei2.initialisieren(MeineDatei datei, "a.txt");
sollte es

datei2.initialisieren(datei, "a.txt");
heissen