Lernpfad:Objektorientierte Programmierung mit Java/Der Konstruktor: Unterschied zwischen den Versionen

Aus Informatik-Box
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Navigation}}
{{Navigation}}
Der ''Konstruktor'' einer Klasse ist eine spezielle {{Pfad|Methoden|Methode}}, die beim {{Pfad|Objekte erstellen|Erstellen einer Objektinstanz}} der Klasse als erstes aufgerufen wird, um den Zustand des Objektes zu initialisieren.
Der ''Konstruktor'' einer Klasse ist eine spezielle {{Pfad|Methoden|Methode}}, die beim {{Pfad|Objekte erstellen|Erstellen einer Objektinstanz}} der Klasse als Erstes aufgerufen wird, um den Zustand des Objektes zu initialisieren.


== Aufbau eines Konstruktors ==
== Aufbau eines Konstruktors ==
Ein Konstruktor ist ähnlich wie andere Methoden aufgebaut, hat aber einige Besonderheiten.  
Ein Konstruktor ist ähnlich wie andere Methoden aufgebaut, hat aber einige Besonderheiten.  
<syntaxhighlight lang="java" line=1 highlight="5-7">
<syntaxhighlight lang="java" line=1>
public class Addierer  {
public class Addierer  {
   private int ersterSummand;
   private int ersterSummand;
Zeile 19: Zeile 19:
</syntaxhighlight>
</syntaxhighlight>


Zunächst hat ein Konstruktor niemals einen {{Farbig|Rückgabewert|red}}. Daher wird der {{Pfad|Parameter und Rückgaben#Rückgabetypen|Rückgabetyp}} bei der Deklaration des Konstruktors weggelassen.
Zunächst hat ein Konstruktor niemals einen Rückgabewert. Daher wird der {{Pfad|Parameter und Rückgaben|Rückgabetyp}} bei der Deklaration des Konstruktors weggelassen.


Der {{Farbig|Bezeichner|blue}} darf nicht frei gewählt werden, sondern muss exakt (auch Groß- und Kleinschreibung) dem Namen der Klasse entsprechen.
Dann darf der Bezeichner nicht frei gewählt werden, sondern muss exakt (auch Groß- und Kleinschreibung) dem Namen der Klasse entsprechen.


Das Beispiel oben zeigt, wie ein Konstruktor für die Klasse <code>Addierer</code> aussehen könnte.
Das Beispiel oben zeigt, wie ein Konstruktor für die Klasse <code>Addierer</code> aussehen könnte.
== Konstruktoren überladen ==
Genauso wie {{Pfad|Methoden#Methoden überladen|Methoden}} können Konstruktoren ''überladen'' werden. Das bedeutet, eine Klasse darf mehrere Konstruktoren enthalten, die sich an der Anzahl und Datentypen der Parameter unterscheiden.
<syntaxhighlight lang="java" line=1>
public class Addierer  {
  private int ersterSummand;
  // Konstruktor
  public Addierer( int pErsterSummand ) {
    ersterSummand = pErsterSummand;
  }
  // Zweiter Konstruktor
  public Addierer( int pErsterSummand, int pNochEinSummand ) {
    ersterSummand = pErsterSummand + pNochEinSummand;
  }
  // Dritter Konstruktor
  public Addierer( String pEinString ) {
    ersterSummand = Integer.parseInt(pEinString);
  }
  public int addieren( int pZweiterSummand ) {
    return ersterSummand + pZweiterSummand;
  }
}
</syntaxhighlight>
{{Inhalt/Übersicht}}

Aktuelle Version vom 7. Februar 2022, 23:28 Uhr

Der Konstruktor einer Klasse ist eine spezielle Methode, die beim Erstellen einer Objektinstanz der Klasse als Erstes aufgerufen wird, um den Zustand des Objektes zu initialisieren.

Aufbau eines Konstruktors

Ein Konstruktor ist ähnlich wie andere Methoden aufgebaut, hat aber einige Besonderheiten.

public class Addierer  {
  private int ersterSummand;

  // Konstruktor
  public Addierer( int pErsterSummand ) {
    ersterSummand = pErsterSummand;
  }

  public int addieren( int pZweiterSummand ) {
    return ersterSummand + pZweiterSummand;
  }
}

Zunächst hat ein Konstruktor niemals einen Rückgabewert. Daher wird der Rückgabetyp bei der Deklaration des Konstruktors weggelassen.

Dann darf der Bezeichner nicht frei gewählt werden, sondern muss exakt (auch Groß- und Kleinschreibung) dem Namen der Klasse entsprechen.

Das Beispiel oben zeigt, wie ein Konstruktor für die Klasse Addierer aussehen könnte.

Konstruktoren überladen

Genauso wie Methoden können Konstruktoren überladen werden. Das bedeutet, eine Klasse darf mehrere Konstruktoren enthalten, die sich an der Anzahl und Datentypen der Parameter unterscheiden.

public class Addierer  {
  private int ersterSummand;

  // Konstruktor
  public Addierer( int pErsterSummand ) {
    ersterSummand = pErsterSummand;
  }
  // Zweiter Konstruktor
  public Addierer( int pErsterSummand, int pNochEinSummand ) {
    ersterSummand = pErsterSummand + pNochEinSummand;
  }
  // Dritter Konstruktor
  public Addierer( String pEinString ) {
    ersterSummand = Integer.parseInt(pEinString);
  }

  public int addieren( int pZweiterSummand ) {
    return ersterSummand + pZweiterSummand;
  }
}