Initialisierungslisten und Weiterleitung
final-Felder setzen und Konstruktoren wiederverwenden
Initialisierungslisten und Weiterleitung ist eine kostenlose Dart Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Dart Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Dart Academy-Kurs umfasst insgesamt 4 Lektionen.
Final-Felder setzen
Ein final-Feld muss gesetzt sein, bevor der Konstruktor-Rumpf ausgeführt wird. Die Initialisierungsliste ist der ideale Ort, um ihm seinen einmaligen Wert zuzuweisen.
class Circle {
final double area;
Circle(double r) : area = 3.14 * r * r;
}Die Syntax der Initialisierungsliste
Fügen Sie nach der Parameterliste einen Doppelpunkt und durch Kommas getrennte Zuweisungen hinzu. Diese Initialisierungsliste wird vor dem Konstruktor-Rumpf ausgeführt.
Point(int x, int y) : x = x, y = y;Wird vor dem Rumpf ausgeführt
Die Zuweisungen der Initialisierungsliste erfolgen zuerst, danach wird der Rumpf ausgeführt. Felder, die Sie in der Liste setzen, sind im Rumpf also bereits bereit.
class Box {
final int n;
Box(int v) : n = v {
print(n); // available
}
}Abgeleitete Werte berechnen
Verwenden Sie die Liste, um ein Feld aus den Parametern zu berechnen, etwa eine Summe oder eine Bezeichnung, bevor jemand auf das Objekt zugreifen kann.
class Rect {
final int area;
Rect(int w, int h) : area = w * h;
}Mehrere Initialisierungen
Trennen Sie mehrere Zuweisungen durch Kommas. Jede davon setzt ein anderes Feld in derselben einzelnen Initialisierungsliste.
Point(int a, int b) : x = a, y = b;assert in der Initialisierungsliste
Sie können ein assert in die Liste aufnehmen, um Eingaben während der Entwicklung abzusichern und ungültige Werte abzufangen, bevor das Objekt existiert.
Circle(double r) : assert(r > 0), area = 3.14 * r * r;Konstruktoren weiterleiten
Ein Konstruktor kann nach dem Doppelpunkt mit this an einen anderen weiterleiten, sodass die gemeinsame Einrichtung an einer einzigen Stelle liegt.
class Point {
int x, y;
Point(this.x, this.y);
Point.zero() : this(0, 0);
}Warum Weiterleitung sinnvoll ist
Eine Weiterleitung vermeidet wiederholte Feldzuweisungen. Der benannte Konstruktor ruft einfach den Hauptkonstruktor auf und hält Ihre Logik DRY.
Point.origin() : this(0, 0);Weiterleitende Konstruktoren bleiben leer
Ein weiterleitender Konstruktor hat keinen Rumpf. Er leitet lediglich mit this(...) an das Ziel weiter, das die eigentliche Arbeit erledigt.
class User {
String name;
User(this.name);
User.anon() : this("anon");
}Ablaufreihenfolge
Merken Sie sich den Ablauf: Zuerst werden die Initialisierungsliste und eine mögliche Weiterleitung ausgeführt, danach der Rumpf. Setzen Sie final-Felder in der Liste und erledigen Sie zusätzliche Aufgaben im Rumpf.
Initialisierungsliste oder Rumpf
Verwenden Sie die Liste zum Zuweisen von Feldern, insbesondere von final-Feldern, und den Rumpf für Logik wie Ausgaben, weitergehende Validierungen oder Methodenaufrufe.
Kurze Überprüfung
Kurze Überprüfung zu Initialisierungslisten.
Zusammenfassung: Initialisierung und Weiterleitung
Sie können jetzt eine Initialisierungsliste verwenden, um final-Felder zu setzen und Werte zu berechnen, mit assert abzusichern und einen Konstruktor mit this an einen anderen weiterzuleiten. 🔀
Lerne Dart mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 30
- Lektionen
- 120
Häufig gestellte Fragen
Ist die Lektion „Initialisierungslisten und Weiterleitung“ kostenlos?
Ja — der vollständige Text von „Initialisierungslisten und Weiterleitung“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Dart Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Dart Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Initialisierungslisten und Weiterleitung“?
final-Felder setzen und Konstruktoren wiederverwenden Du übst Dart Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Dart Academy zu starten?
Keine Vorkenntnisse erforderlich. Dart Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Initialisierungslisten und Weiterleitung“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Dart Academy-Lektion Code schreiben und ausführen?
Ja. Jede Dart Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Standard- und parametrisierte Konstruktoren
- Benannte Konstruktoren für klare Absichten
- Initialisierungslisten und Weiterleitung
- Factory- und const-Konstruktoren