Menu
CoddyTech

Zusammenfassung - Null sicher handhaben

Teil des Abschnitts Grundlagen der Dart-Journey von Coddy. Lektion 82 von 94.

challenge icon

Aufgabe

Einfach

Du entwickelst ein Benutzerprofilsystem für eine mobile App. Erstelle eine Klasse UserProfile, die zeigt, dass du Dart-Features zur Null-Sicherheit verstanden hast.

Der Editor gibt den Klassenentwurf von UserProfile vor: den Konstruktor und die Methodenköpfe. Vervollständige ihn wie folgt:

  1. Nicht-nullfähige Eigenschaften (müssen immer einen Wert haben):
    • id vom Typ int
    • createdDate vom Typ String
  2. Nullfähige Eigenschaften (können bei der Initialisierung null sein):
    • name vom Typ String?
    • email vom Typ String?
    • age vom Typ int?
  3. Spät initialisierte Eigenschaft:
    • displayName vom Typ String, deklariert mit dem Schlüsselwort late
  4. Konstruktor:
    • Akzeptiert id und createdDate als erforderliche Parameter
    • Initialisiert displayName mit "Guest"
  5. Methode: void printProfile() Gibt das Benutzerprofil im folgenden Format aus:

    User Profile:
    ID: <id>
    Created: <createdDate>
    Name: <name or 'Not provided'>
    Email: <email or 'Not provided'>
    Age: <age or 'Not provided'>
    Display Name: <displayName>
    -------------------
  6. Methode: void updateEmail(String? newEmail)
    • Aktualisiert die Eigenschaft email mit dem neuen Wert.
  7. Methode: String getDisplayName()
    • Wenn name nicht null ist, setzt displayName = name! (unter Verwendung des Null-Assertionsoperators).
    • Gibt den aktuellen Wert von displayName zurück.

Wichtig: Nachdem du die Eigenschaft name aktualisiert hast, musst du getDisplayName() aufrufen, um das Feld displayName zu aktualisieren, bevor du das Profil erneut ausgibst.

Vervollständige den Code, um ein Profil zu erstellen, es zu aktualisieren und die Informationen wie in der erwarteten Ausgabe gezeigt anzuzeigen.

Probier es selbst

void main() {
  // Erstelle ein Benutzerprofil
  final profile = UserProfile(1, 'today');
  
  // Gib das ursprüngliche Profil aus
  profile.printProfile();
  
  // Aktualisiere das Profil
  profile.name = 'John Doe';
  profile.updateEmail('john@example.com');
  profile.age = 30;
  
  // Aktualisiere den Anzeigenamen und gib das aktualisierte Profil aus
  profile.getDisplayName(); // Rufe dies auf, um displayName zu aktualisieren
  profile.printProfile();
}

class UserProfile {
  // TODO: Füge Eigenschaften hinzu (id, createdDate, name, email, age, displayName)
  
  UserProfile(this.id, this.createdDate) {
    // TODO: Initialisiere displayName
  }
  
  void printProfile() {
    // TODO: Gib das Profil in dem in der Aufgabe gezeigten Format aus
  }
  
  void updateEmail(String? newEmail) {
    // TODO: Aktualisiere email
  }
  
  String getDisplayName() {
    // TODO: Aktualisiere displayName anhand von name und gib dann displayName zurück
  }
}

Alle Lektionen in Grundlagen

Übe selbstständig: Online-Dart-Compiler