Methoden
Teil des Abschnitts Objektorientierte Programmierung der Dart-Journey von Coddy — Lektion 6 von 110.
Methoden sind Funktionen, die zu einer Klasse gehören. Sie definieren die Verhaltensweisen oder Aktionen, die Objekte ausführen können.
Hier ist ein Beispiel für eine Klasse mit Methoden:
class Calculator {
void greet() {
print('Hello! I am a calculator.');
}
int add(int a, int b) {
return a + b;
}
int multiply(int x, int y) {
int result = x * y;
print('$x x $y = $result');
return result;
}
}Methodensignaturen in Dart enthalten immer einen Rückgabetyp. Verwenden Sie void, wenn die Methode nichts zurückgibt.
Erstellen Sie ein Calculator-Objekt:
Calculator myCalc = Calculator();Rufen Sie eine Methode auf, die keine Parameter benötigt:
myCalc.greet();Rufen Sie Methoden mit Parametern auf und erfassen Sie den Rückgabewert:
int sumResult = myCalc.add(5, 3);
print(sumResult);Rufen Sie eine Methode auf, die sowohl einen Wert ausgibt als auch zurückgibt:
int product = myCalc.multiply(4, 7);Ausgabe:
Hello! I am a calculator.
8
4 x 7 = 28Methoden können:
- Einen Rückgabetyp haben, wie zum Beispiel
int add(int a, int b) - Werte mit
returnzurückgeben - Ausgaben direkt mit
print()ausgeben voidsein, wenn sie nichts zurückgeben
Wichtiger Punkt: Rufen Sie Methoden auf Objekten mit dem Punkt-Operator auf: object.methodName(args).
Aufgabe
EinfachErstellen Sie eine BankAccount-Klasse in bank_account.dart mit:
- Einer
double balanceInstanzvariable, die auf0gesetzt ist - Einer
deposit-Methode, die einendouble amountentgegennimmt und diesen zubalancehinzufügt - Einer
withdraw-Methode, die einendouble amountentgegennimmt und diesen vonbalanceabzieht - Einer
getBalance-Methode, die den aktuellenbalance-Wert zurückgibt
Erstellen Sie dann in driver.dart ein Konto, zahlen Sie 100 ein, heben Sie 30 ab und geben Sie den Kontostand im folgenden Format aus: 'Current balance: $[balance]'
Spickzettel
Methoden sind Funktionen, die zu einer Klasse gehören und Verhaltensweisen definieren, die Objekte ausführen können.
Definieren Sie Methoden mit einem Rückgabetyp. Verwenden Sie void, wenn die Methode nichts zurückgibt:
class Calculator {
void greet() {
print('Hello! I am a calculator.');
}
int add(int a, int b) {
return a + b;
}
int multiply(int x, int y) {
int result = x * y;
print('$x x $y = $result');
return result;
}
}Rufen Sie Methoden auf Objekten mit dem Punkt-Operator auf:
Calculator myCalc = Calculator();
myCalc.greet(); // Keine Parameter
int sumResult = myCalc.add(5, 3); // Mit Parametern, Rückgabewert erfassen
print(sumResult);
int product = myCalc.multiply(4, 7); // Gibt aus und gibt zurückMethoden können Rückgabetypen haben, Rückgabewerte mit return zurückgeben, Ausgaben direkt mit print() ausgeben oder void sein, wenn sie nichts zurückgeben.
Probier es selbst
import 'bank_account.dart';
void main() {
BankAccount myAccount = BankAccount();
myAccount.balance = 0;
// TODO: 100 einzahlen
// TODO: 30 abheben
// TODO: Kontostand im Format 'Current balance: $[balance]' ausgeben
// Hinweis: verwende .toInt() für den balance für eine saubere Ausgabe
}
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