Frage von jansimue, 30

Wie kann man this. im Konstruktor näher erklären?

Beispielsweise gibt es eine Klasse namens Mensch:

public class Mensch {
  private String name;
  private int alter;
  private String haarfarbe;

  public Mensch (String name, int alter, String haarfarbe){
    this.name = name;
    this.alter = alter;
    this.haarfarbe = haarfarbe;
  }
}

Was bedeutet:

this.name = name;
this.alter = alter;
this.haarfarbe = haarfarbe;

im Konstruktor?

Ich bitte um eine Erklärung. Danke im Voraus.

LG

Antwort
von regex9, 3

Das Schlüsselwort this bezieht sich auf die aktuelle Referenz der Instanz.

Wenn du eine Instanz namens Hans von der Klasse Mensch erstellst, wird bei der Ausführung des Konstruktors (oder einer anderen Methode) überall wo this steht, stattdessen die neue Referenz Hans eingefügt. So kann ermittelt werden, welches Objekt gerade welchen Zustand zugeordnet bekommen oder gerade auf etwas reagieren soll.

Da bei der Definition einer Klasse aber noch keine Instanz existiert (du weißt ja auch noch nicht, ob du die Referenz auf die Instanz Hans, Peter oder objekt42 nennen wirst), muss ein unbestimmter Platzhalter existieren.

Des Weiteren gibt es übrigens noch andere Schlüsselbegriffe:

  • super - ruft den von der Basisklasse geerbten Zustand auf (dem Compiler ist also bekannt, dass er nun in eine andere Klasse schauen muss; so wird auch klar, wie im Hintergrund Polymorphie umgesetzt wird)
  • this() - ruft den Konstruktor der Instanz auf
  • super() - ruft den Konstruktor der Basisklasse auf
Antwort
von Markus17, 9

so kann man auf ein bestimmtes Element hinweisen. Beispielsweise kann man die Funktion auf Hallo und Hallozwei aufrufen.

Mit this wird jeweils eine Funktion auf Hallo ausgeführt, zum Beispiel die Farbe der Schrift geändert. Bei Hallozwei ist es dann genauso, dass dieses Element eingefärbt wird, ohne dass man das Element hart ins Programm schreiben muss.

(Google mal das in js, dann ist es vielleicht verständlicher)

Antwort
von Aren89, 24

This wird Genutz um die in der Klasse definierten Variablen direkt anzusprechen falls wie im konstruktive bei die Parameter die selben Namen haben wie die variablen der Klasse

Antwort
von Willibergi, 23

Das this bezieht sich auf das aktuelle Objekt.

Ein Objekt der Klasse Mensch hat ja die Objektvariablen name, alter und haarfarbe. Und diese Objektvariablen werden dann im Konstruktor deklariert.

this.name beschreibt die Objektvariable name, name alleine beschreibt den Parameter, der dem Konstruktor übergeben wird. Da muss man unterscheiden.

LG Willibergi

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten