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.
Erstelle ein Rechnerobjekt:
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]'
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 Schlüsselwort thisMethodenInstanzvariablenGrundlagen von KonstruktorenRückblick – Einfacher Taschenrechner4Null-Sicherheit
Einführung in die Null-SicherheitNullable vs. Non-NullableDie Operatoren ? und !Late-Schlüsselwort und Null-SicherheitNull-bewusste OperatorenNull-Sicherheit in KlassenRückblick – Benutzers профilsystem7Abstrakte Klassen & Interfaces
Abstrakte KlassenAbstrakte MethodenInterfaces in DartImplizite InterfacesImplementieren vs. ErweiternMehrere InterfacesZusammenfassung – Formrechner10Collections & Generics
Übersicht über List, Set und MapTypsichere CollectionsGenerische KlassenGenerische MethodenGenerische EinschränkungenIterable & IteratorRückblick – Generischer Speicher13Fortgeschrittene OOP-Konzepte
Komposition vs. VererbungErweiterungsmethodenAufrufbare KlassenVersiegelte Klassen (Dart 3)Records (Dart 3)Muster & Matching (3.0)Enums mit Methoden16Projekt: Bibliotheksverwaltung
ProjektübersichtBuch- und Benutzerklassen2Konstruktoren in Dart
StandardkonstruktorBenannte KonstruktorenInitialisierungslistenKonstantenkonstruktorenFactory-KonstruktorenWeiterleitende KonstruktorenRückblick – Shape Builder5Kapselung
Öffentliche vs. private MemberDie _-Präfix-KonventionBibliotheksweite SichtbarkeitTiefergehende Getter & SetterInformationsverbergungRückblick – Studierendendaten8Mixins
Einführung in MixinsMixins erstellenMehrere Mixins verwendenDas Schlüsselwort „on“ in MixinsMixin vs. VererbungMixin vs. SchnittstelleRückblick – Tiersystem11Spezielle Methoden
toString()-ÜberschreibunghashCode- & ==-ÜberschreibungComparable-Schnittstellecall()-MethodenoSuchMethod-ÜberschreibungWiederholung – Benutzerdefinierte Collection14Entwurfsmuster Teil 1
Einführung in EntwurfsmusterSingleton-MusterFabrikmusterBeobachtermusterStrategiemuster17Abschließende Herausforderungen
E-Learning-PlattformBankingsystemSpielcharaktersystemFahrzeugvermietung3Klassen-Eigenschaften
Instanz- vs. statische MemberFinal- und Const-FelderLate-VariablenStatische Methoden und FelderGetter und SetterRückblick – Bankkontoverwaltung6Vererbung
Grundlegende VererbungDas Schlüsselwort superMethodenüberschreibungDie Annotation @overrideDas Schlüsselwort final für KlassenKonstruktoren und VererbungZusammenfassung – Mitarbeiterhierarchie9Polymorphismus
Grundlagen des PolymorphismusPolymorphismus über InterfacesLaufzeit-TypüberprüfungDie Operatoren is & asCovariant-SchlüsselwortZusammenfassung – ZahlungsprozessorÜbe selbstständig: Online-Dart-Compiler