Lektion 19 - Methoden Vertiefung
Methoden in Dart richtig verstehen
Methoden sind benannte Code-Bloecke, die eine Aufgabe erledigen. Sie helfen dir, Programme lesbarer zu machen, Wiederholungen zu vermeiden und Verhalten sauber in Klassen oder Widgets zu organisieren.
1. Was ist eine Methode?
Eine Methode ist wie eine kleine Arbeitsanweisung mit Namen. Statt denselben Code mehrfach zu schreiben, lagerst du ihn in eine Methode aus und rufst ihn bei Bedarf auf.
void greet() {
print('Hallo!');
}
void main() {
greet();
}
greet ist der Methodenname. Die Klammern () bedeuten: Diese
Methode kann aufgerufen werden.
2. Aufbau einer Methode
Eine Methode besteht meistens aus Rueckgabetyp, Name, Parametern und Methodenkoerper.
Rueckgabetyp name(Parameter) {
Anweisungen
optional return Wert
}
voidDie Methode gibt keinen Wert zurueck.intDie Methode gibt eine ganze Zahl zurueck.StringDie Methode gibt Text zurueck.nameSagt, wofuer die Methode da ist.()Enthaelt optionale Eingaben, also Parameter.3. Methoden ohne Rueckgabewert
Methoden mit void fuehren etwas aus, liefern aber keinen Wert zurueck.
Sie eignen sich fuer Ausgaben, Zustandsaenderungen oder Aktionen.
void printSeparator() {
print('----------------');
}
void main() {
print('Start');
printSeparator();
print('Ende');
}
4. Methoden mit Rueckgabewert
Wenn eine Methode etwas berechnen und weitergeben soll, nutzt du einen Rueckgabewert.
Dann brauchst du return.
int doubleNumber(int value) {
return value * 2;
}
void main() {
final result = doubleNumber(4);
print(result); // 8
}
Der Rueckgabetyp int verspricht: Diese Methode liefert am Ende eine ganze Zahl.
5. Parameter: Werte in Methoden geben
Parameter sind Eingaben fuer Methoden. Dadurch kann dieselbe Methode mit unterschiedlichen Werten arbeiten.
String buildGreeting(String name) {
return 'Hallo $name';
}
void main() {
print(buildGreeting('Finja'));
print(buildGreeting('Alex'));
}
Ohne Parameter muesstest du fuer jeden Namen eine eigene Methode schreiben. Mit Parametern bleibt der Code kurz und flexibel.
6. Mehrere Parameter
Eine Methode kann mehrere Werte entgegennehmen. Wichtig ist, dass die Reihenfolge beim Aufruf zu den Parametern passt.
int add(int first, int second) {
return first + second;
}
void main() {
print(add(3, 7)); // 10
}
Gute Parameternamen sind wichtig. first und second sind besser
als a und b, wenn der Code fuer Lernende lesbar bleiben soll.
7. Optionale Parameter
In Dart kannst du Parameter optional machen. Das ist praktisch, wenn ein Standardwert reichen soll, aber bei Bedarf ueberschrieben werden kann.
String createTitle(String text, [String prefix = 'Thema']) {
return '$prefix: $text';
}
void main() {
print(createTitle('Methoden'));
print(createTitle('Methoden', 'Lektion'));
}
Eckige Klammern [] bedeuten: Dieser Parameter ist optional und wird ueber die
Position uebergeben.
8. Benannte Parameter
Benannte Parameter machen Aufrufe lesbarer, besonders wenn mehrere Werte uebergeben werden. Sie stehen in geschweiften Klammern.
String createUser({
required String name,
int age = 0,
bool isActive = true,
}) {
return '$name, $age, active: $isActive';
}
void main() {
print(createUser(name: 'Mina', age: 21));
}
requiredDer Wert muss beim Aufruf angegeben werden.age = 0Wenn kein Wert kommt, wird 0 genutzt.name: 'Mina'Der Aufruf sagt klar, welcher Wert gemeint ist.9. Methoden in Klassen
In Klassen beschreiben Methoden, was ein Objekt tun kann. Attribute speichern Zustand, Methoden arbeiten mit diesem Zustand.
class Counter {
int value = 0;
void increase() {
value++;
}
void decrease() {
value--;
}
int doubled() {
return value * 2;
}
}
void main() {
final counter = Counter();
counter.increase();
print(counter.doubled());
}
increase() veraendert das Objekt. doubled() berechnet einen Wert
aus dem aktuellen Objektzustand.
10. Methoden in Flutter
In Flutter nutzt du Methoden oft, um Widgets auszulagern oder State-Aenderungen klar zu
benennen. Dadurch bleibt die build-Methode lesbarer.
void increaseCounter() {
setState(() {
counter++;
});
}
Widget buildCounterButton() {
return ElevatedButton(
onPressed: increaseCounter,
child: const Text('+1'),
);
}
Die Methode increaseCounter wird nicht direkt ausgefuehrt, sondern als
Callback an onPressed uebergeben.
11. Pfeilsyntax fuer kurze Methoden
Wenn eine Methode nur einen einzelnen Ausdruck zurueckgibt, kannst du die kurze Pfeilsyntax nutzen.
int square(int value) => value * value;
String labelFor(String name) => 'User: $name';
Die Pfeilsyntax ist praktisch, aber nicht immer besser. Beim Lernen ist die lange Form
oft klarer, weil du return bewusst siehst.
12. Gute Methodennamen
Methodennamen sollten wie kleine Verben oder klare Fragen klingen. So erkennt man schnell, ob eine Methode etwas tut oder etwas prueft.
doIt()saveUser()check()isAdult()calc()calculateTotalPrice()change()updateCounterValue()13. Typische Fehler
return fehltEine Methode mit Rueckgabetyp muss einen Wert liefern.String versprochen, aber int zurueckgegeben.14. Planung vor Dart-Code
Bevor du eine Methode programmierst, kannst du ihre Aufgabe kurz in Worten planen. Das hilft besonders bei Aufgaben mit Bedingungen.
Methode calculateDiscount(price, isStudent):
Wenn isStudent wahr ist:
Gib price * 0.8 zurueck
Sonst:
Gib price zurueck
double calculateDiscount(double price, bool isStudent) {
if (isStudent) {
return price * 0.8;
}
return price;
}
15. Aufgaben
- Schreibe eine Methode
isAdult, die prueft, ob ein Alter mindestens 18 ist. - Schreibe eine Methode
formatName, die Vorname und Nachname verbindet. - Schreibe eine Methode
calculateTotalfuer Preis und Menge. - Schreibe zuerst eine kurze Planung fuer jede Methode.
- Baue eine Klasse
BankAccountmit Methodendepositundwithdraw.
Methode withdraw(amount):
Wenn amount kleiner oder gleich 0 ist:
Gib false zurueck
Wenn amount groesser als balance ist:
Gib false zurueck
Ziehe amount von balance ab
Gib true zurueck
Weiter zu Vererbung