Menu
Coddy logo textTech

Das this-Schlüsselwort

Teil des Abschnitts Objektorientierte Programmierung der Dart-Journey von Coddy — Lektion 5 von 110.

Das Schlüsselwort this bezieht sich auf die aktuelle Instanz einer Klasse. Innerhalb einer Methode ermöglicht this den Zugriff auf die eigenen Variablen des Objekts.

Hier ist ein Beispiel für eine Klasse mit Methoden, die this verwenden:

class Car {
  String color = '';
  String model = '';

  void honk() {
    print('Beep beep!');
  }

  void describe() {
    print('I am a ${this.color} ${this.model}');
  }
}

Innerhalb von describe() beziehen sich this.color und this.model auf die Variablen dieses spezifischen Objekts.

Erstellen Sie ein Auto-Objekt und legen Sie dessen Variablen fest:

Car myCar = Car();
myCar.color = 'Red';
myCar.model = 'Sedan';

Rufen Sie die Methoden auf:

myCar.honk();
myCar.describe();

Ausgabe:

Beep beep!
I am a Red Sedan

this ist besonders nützlich, wenn ein Methodenparameter denselben Namen wie eine Instanzvariable hat:

class Car {
  String color = '';

  void setColor(String color) {
    this.color = color; // this.color = Instanzvariable, color = Parameter
  }
}

Ohne this wüsste Dart nicht, ob color sich auf den Parameter oder die Instanzvariable bezieht. Wichtiger Punkt: this bezieht sich immer auf das spezifische Objekt, das gerade die Methode aufruft.

challenge icon

Aufgabe

Einfach

Vervollständigen Sie die Klasse Car in car.dart, indem Sie eine Methode namens displayInfo hinzufügen, die das Schlüsselwort this verwendet, um das Jahr, die Marke und das Modell des Autos in folgendem Format auszugeben:

'This car is a [year] [make] [model]'

  • car.dart: Enthält die Klasse Car, in der Sie die Methode displayInfo hinzufügen werden
  • driver.dart: Setzt Variablen für ein Auto-Objekt und ruft displayInfo() auf (gesperrt)

Spickzettel

Das Schlüsselwort this bezieht sich auf die aktuelle Instanz einer Klasse und ermöglicht es Ihnen, innerhalb von Methoden auf die eigenen Variablen des Objekts zuzugreifen.

Verwendung von this in einer Methode:

class Car {
  String color = '';
  String model = '';

  void describe() {
    print('I am a ${this.color} ${this.model}');
  }
}

this ist besonders nützlich, wenn ein Methodenparameter denselben Namen wie eine Instanzvariable hat:

class Car {
  String color = '';

  void setColor(String color) {
    this.color = color; // this.color = Instanzvariable, color = Parameter
  }
}

Ohne this wüsste Dart nicht, ob sich color auf den Parameter oder die Instanzvariable bezieht.

Probier es selbst

import 'car.dart';

void main() {
  Car myCar = Car();
  myCar.year = '2020';
  myCar.make = 'Toyota';
  myCar.model = 'Corolla';
  myCar.displayInfo();
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Objektorientierte Programmierung