Menu
Coddy logo textTech

Konstruktor-Grundlagen

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

Ein Konstruktor ist eine spezielle Methode, die automatisch ausgeführt wird, wenn Sie ein neues Objekt erstellen. Er initialisiert die Instanzvariablen des Objekts direkt im Moment der Erstellung.

Hier ist ein Beispiel für eine Klasse mit einem Konstruktor:

class Dog {
  String name;
  String breed;

  Dog(String name, String breed) {
    this.name = name;
    this.breed = breed;
  }
}

Der Konstruktor hat denselben Namen wie die Klasse. Parameter werden beim Erstellen des Objekts übergeben.

Erstellen Sie Objekte, indem Sie Argumente an den Konstruktor übergeben:

Dog rex = Dog('Rex', 'German Shepherd');
Dog buddy = Dog('Buddy', 'Golden Retriever');

Greifen Sie auf die vom Konstruktor gesetzten Variablen zu:

print(rex.name);
print(rex.breed);
print(buddy.name);
print(buddy.breed);

Ausgabe:

Rex
German Shepherd
Buddy
Golden Retriever

Dart bietet auch eine Kurzschreibweise für Konstruktoren an, die this.variableName direkt in der Parameterliste verwendet:

class Dog {
  String name;
  String breed;

  // Kurzschreibweise: weist Parameter automatisch Instanzvariablen zu
  Dog(this.name, this.breed);
}

Beide Versionen liefern das gleiche Ergebnis. Die Kurzschreibweise ist ein beliebtes Dart-Feature, das es überflüssig macht, this.name = name manuell zu schreiben.

Sie können auch Standardparameterwerte hinzufügen:

class Cat {
  String name;
  int age;

  Cat(this.name, [this.age = 1]); // age ist standardmäßig 1
}

Cat fluffy = Cat('Fluffy', 3);
Cat whiskers = Cat('Whiskers'); // age ist standardmäßig 1

print('${fluffy.name} is ${fluffy.age}');    // Fluffy ist 3
print('${whiskers.name} is ${whiskers.age}'); // Whiskers ist 1

Kernpunkt: Konstruktoren stellen sicher, dass jedes Objekt im Moment seiner Erstellung ordnungsgemäß mit Daten initialisiert wird, was Ihnen das nachträgliche manuelle Setzen von Variablen erspart.

challenge icon

Aufgabe

Einfach

Dir werden PHP-Dateien (book.dart und driver.dart) zur Verfügung gestellt, um ein Buchsystem zu implementieren.

Deine Aufgaben:

  • Vervollständige die Klasse Book in book.dart, indem du einen Konstruktor hinzufügst, der title, author und pages initialisiert — verwende die Dart-Kurzschreibweise Book(this.title, this.author, this.pages);
  • Erstelle in driver.dart ein Book-Objekt für 'Harry Potter' von 'J.K. Rowling' mit 400 Seiten

Folge den TODO-Kommentaren in jeder Datei.

Spickzettel

Ein Konstruktor ist eine spezielle Methode, die automatisch ausgeführt wird, wenn Sie ein neues Objekt erstellen. Er initialisiert die Instanzvariablen des Objekts zum Zeitpunkt der Erstellung.

Der Konstruktor hat denselben Namen wie die Klasse:

class Dog {
  String name;
  String breed;

  Dog(String name, String breed) {
    this.name = name;
    this.breed = breed;
  }
}

Erstellen Sie Objekte, indem Sie Argumente an den Konstruktor übergeben:

Dog rex = Dog('Rex', 'German Shepherd');

Dart bietet eine Kurzschreibweise für Konstruktoren an, bei der this.variableName direkt in der Parameterliste verwendet wird:

class Dog {
  String name;
  String breed;

  Dog(this.name, this.breed);
}

Sie können Standardparameterwerte hinzufügen, indem Sie optionale positionale Parameter verwenden:

class Cat {
  String name;
  int age;

  Cat(this.name, [this.age = 1]); // age hat den Standardwert 1
}

Cat fluffy = Cat('Fluffy', 3);
Cat whiskers = Cat('Whiskers'); // age hat den Standardwert 1

Probier es selbst

import 'book.dart';

void main() {
  // TODO: Erstelle ein Book-Objekt mit:
  // title: 'Harry Potter', author: 'J.K. Rowling', pages: 400
  Book myBook = ?;

  print("'${myBook.title}' by ${myBook.author}, ${myBook.pages} pages");
}
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