Einführung in die OOP
Teil des Abschnitts Objektorientierte Programmierung der Dart-Journey von Coddy — Lektion 3 von 110.
Objektorientierte Programmierung (OOP) organisiert Code um Objekte, die Daten (Instanzvariablen) und Funktionen (Methoden) enthalten.
Erstellen Sie eine Datei namens car.dart mit einer Klasse
class Car {
// leerer Klassenrumpf
}Erstellen Sie eine weitere Datei namens driver.dart, um die Klasse zu verwenden
import 'car.dart';Erstellen Sie ein Objekt aus der Klasse Car, indem Sie den Klassennamen gefolgt von Klammern verwenden
void main() {
Car myCar = Car();
}Überprüfen Sie den Typ Ihres Objekts mit runtimeType
print(myCar.runtimeType);Ausgabe:
CarDies bestätigt, dass Sie erfolgreich ein Objekt aus Ihrer Car-Klasse erstellt haben. In der OOP ist eine Klasse wie ein Bauplan, und ein Objekt ist das, was Sie aus diesem Bauplan erstellen. In Dart erstellen Sie Objekte, indem Sie den Klassennamen wie eine Funktion aufrufen: Car().
Aufgabe
MittelIn dieser Challenge verwendest du eine Car-Klasse, die in car.dart definiert ist, und erstellst ein Objekt daraus in driver.dart.
Aktualisiere driver.dart, um Folgendes zu tun:
- Erstelle ein Objekt aus der
Car-Klasse mitCar()und speichere es in einer Variablen namensmyCar
Die Driver-Datei wird den Laufzeittyp (runtime type) ausgeben, um deine Implementierung zu überprüfen.
Spickzettel
Objektorientierte Programmierung (OOP) organisiert Code um Objekte, die Daten (Instanzvariablen) und Funktionen (Methoden) enthalten.
Eine Klasse ist wie ein Bauplan, und ein Objekt ist das, was man aus diesem Bauplan erstellt.
Definiere eine Klasse:
class Car {
// leerer Klassenkörper
}Importiere eine Klasse aus einer anderen Datei:
import 'car.dart';Erstelle ein Objekt aus einer Klasse, indem du den Klassennamen gefolgt von Klammern verwendest:
Car myCar = Car();Überprüfe den Typ eines Objekts mit runtimeType:
print(myCar.runtimeType); // Ausgabe: CarProbier es selbst
import 'car.dart';
void main() {
// TODO: Erstelle ein Car-Objekt mit dem Namen myCar
Car myCar = ?;
print(myCar.runtimeType);
}
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Objektorientierte Programmierung
1Grundlagen der OOP
Externe DateienBibliotheken & ImportsEinführung in die OOPKlassen vs. ObjekteDas this-SchlüsselwortMethodenInstanzvariablenKonstruktor-GrundlagenWiederholung – Einfacher Taschenrechner4Null-Sicherheit
Einführung in Null-SicherheitNullable vs. Non-NullableDie ? und ! OperatorenLate-Schlüsselwort & Null-SicherheitNull-aware OperatorenNull-Sicherheit in KlassenZusammenfassung – Benutzerprofil-System7Abstrakte Klassen & Interfaces
Abstrakte KlassenAbstrakte MethodenInterfaces in DartImplizite InterfacesImplementieren vs. ErweiternMehrfache InterfacesRückblick – Shape Calculator10Collections & Generics
Überblick über List, Set und MapTypsichere CollectionsGenerische KlassenGenerische MethodenGenerische ConstraintsIterable & IteratorZusammenfassung – Generische Speicherung13Fortgeschrittene OOP-Konzepte
Komposition vs. VererbungExtension MethodsCallable ClassesSealed Classes (Dart 3)Records (Dart 3)Patterns & Matching (3.0)Enums mit Methoden16Projekt: Bibliotheksverwaltung
ProjektübersichtBuch- und Benutzerklassen2Konstruktoren in Dart
Standard-KonstruktorBenannte KonstruktorenInitialisierungslistenKonstante KonstruktorenFactory-KonstruktorenWeiterleitende KonstruktorenZusammenfassung – Shape Builder5Kapselung
Öffentliche vs. private MemberDie _ Präfix-KonventionSichtbarkeit auf Library-EbeneGetter & Setter im DetailInformation HidingRückblick – Schülerdatensätze8Mixins
Einführung in MixinsMixins erstellenMehrere Mixins verwendenDas on-Schlüsselwort in MixinsMixin vs. VererbungMixin vs. InterfaceZusammenfassung - Tiersystem11Spezielle Methoden
toString() überschreibenhashCode & == überschreibenComparable-Interfacecall()-MethodenoSuchMethod überschreibenZusammenfassung – Eigene Collection14Entwurfsmuster Teil 1
Einführung in EntwurfsmusterSingleton-MusterFactory-MusterObserver-MusterStrategy-Muster3Klasseneigenschaften
Instanz- vs. statische MemberFinal & Const FelderLate-VariablenStatische Methoden & FelderGetter und SetterZusammenfassung – Bankkonto-Manager6Vererbung
Grundlagen der VererbungDas super-SchlüsselwortMethoden überschreibenDie @override-AnnotationDas final-Klassen-SchlüsselwortKonstruktoren & VererbungRückblick – Mitarbeiter-Hierarchie9Polymorphismus
Polymorphismus-GrundlagenPolymorphismus über InterfacesTypprüfung zur LaufzeitDie is & as OperatorenDas covariant SchlüsselwortZusammenfassung – Payment Processor