Skip to content

Anhang: Dart Kernwissen Zusammenfassung

1. Grundlegende Syntax-Merkblatt

Variablen und Konstanten

dart
var name = 'Dart';  // Typableitung
dynamic alter = 25;  // Typ kann geändert werden
Object obj = 'Obj';  // Basis-Klasse
final stadt = 'Berlin';  // Einmalige Zuweisung
const pi = 3.14;  // Kompilierungszeit-Konstante

Grundlegende Datentypen

  • int: Ganze Zahl
  • double: Gleitkommazahl
  • String: Zeichenfolge
  • bool: Wahrheitswert
  • Null: Null

2. Datentypen, Sammlungen, Funktionshäufige Methoden

List-Methoden

  • add(): Hinzufügen
  • remove(): Löschen
  • length: Länge
  • isEmpty: Ist leer
  • contains(): Enthält
  • sort(): Sortieren

Set-Methoden

  • add(): Hinzufügen
  • remove(): Löschen
  • contains(): Enthält
  • intersection(): Schnittmenge
  • union(): Vereinigungsmenge

Map-Methoden

  • keys: Schlüssel
  • values: Werte
  • containsKey(): Enthält Schlüssel
  • containsValue(): Enthält Wert

Funktionshäufige Methoden

  • map(): Abbilden
  • where(): Filtern
  • reduce(): Reduzieren
  • forEach(): Für jedes Element
  • every(): Jedes Element prüfen
  • any(): Irgendein Element prüfen

3. Objektorientierte Programmierung Kernwissen

Klassen und Objekte

dart
class Person {
  String name;  // Attribut
  int alter;     // Attribut
  
  Person(this.name, this.alter);  // Konstruktor
  
  void vorstellen() {  // Methode
    print('Ich bin ' + name);
  }
}

Vererbung

dart
class Tier {
  void essen() {
    print('Tier isst');
  }
}

class Hund extends Tier {
  @override
  void essen() {
    print('Hund isst');
  }
}

Abstrakte Klassen und Schnittstellen

dart
abstract class Form {
  double fläche();
}

class Rechteck implements Form {
  @override
  double fläche() => breite * höhe;
}

4. Asynchrone Programmierung Methoden

Future

dart
Future<String> holeDaten() {
  return Future.delayed(Duration(seconds: 2), () => 'Daten');
}

async/await

dart
Future<void> datenVerarbeiten() async {
  String daten = await holeDaten();
  print(daten);
}

Fehlerbehandlung

dart
try {
  await datenHolen();
} catch (e) {
  print('Fehler: ' + e.toString());
} finally {
  print('Abgeschlossen');
}

5. Häufige Code-Vorlagen

Einfache Klasse

dart
class Klasse {
  // Attribute
  String name;
  
  // Konstruktor
  Klasse(this.name);
  
  // Methode
  void methode() {
    print(name);
  }
}

Asynchroner Funktionsaufruf

dart
Future<void> asynchronerAufruf() async {
  try {
    var result = await funktion();
    print(result);
  } catch (e) {
    print(e);
  }
}

Liste durchlaufen

dart
List<int> zahlen = [1, 2, 3];
zahlen.forEach((zahl) => print(zahl));

6. Häufige Fehler für Anfänger Vergleichstabelle

FehlerBeschreibungLösung
Null-Sicherheit nicht beachtetVariablen können null seinVerwende Null-Sicherheit (?)
await am falschen Ortawait nur in async-FunktionenStelle sicher, dass die Funktion async ist
Falsche VererbungVergisst @overrideVerwende @override Annotation
Falscher ImportpfadDatei nicht gefundenÜberprüfe den Importpfad

7. Häufige Drittanbieter-Bibliotheken nach Szenario

SzenarioBibliothekVerwendungszweck
NetzwerkanfragenhttpHTTP-Anfragen senden
Lokaler Speichershared_preferencesEinfache Datenspeicherung
JSON-Verarbeitungjson_serializableJSON-Analyse und -generierung
ZustandsverwaltungproviderFlutter-Zustandsverwaltung
HTTP-ClientdioLeistungsstarke HTTP-Client-Bibliothek

Frei für alle Anfänger