Menu
Coddy logo textTech

Zusammenfassung - Null sicher handhaben

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

challenge icon

Aufgabe

Einfach

Du erstellst ein Benutzerprofilsystem für eine mobile App. Erstelle eine Klasse UserProfile, die dein Verständnis der Null-Sicherheit von Dart demonstriert.

Implementiere eine Klasse UserProfile mit Folgendem:

  1. Eigenschaften, die nicht null sein dürfen (müssen immer einen Wert haben):
    • id vom Typ int
    • createdDate vom Typ String
  2. Nullable Eigenschaften (können bei der Initialisierung null sein):
    • name vom Typ String?
    • email vom Typ String?
    • age vom Typ int?
  3. Verzögert 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: <strong>void printProfile()</strong> 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: <strong>void updateEmail(String? newEmail)</strong>
    • Aktualisiert die Eigenschaft email mit dem neuen Wert.
  7. Methode: <strong>String getDisplayName()</strong>
    • Wenn name nicht null ist, setzt sie 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 anzuzeigen.

Probier es selbst

void main() {
  // Erstelle ein Benutzerprofil
  final profile = UserProfile(1, 'today');
  
  // Initiales Profil ausgeben
  profile.printProfile();
  
  // Profil aktualisieren
  profile.name = 'John Doe';
  profile.updateEmail('john@example.com');
  profile.age = 30;
  
  // Anzeigenamen aktualisieren und aktualisiertes Profil ausgeben
  profile.getDisplayName(); // Dies aufrufen, um displayName zu aktualisieren
  profile.printProfile();
}

class UserProfile {
  // TODO: Eigenschaften hinzufügen (id, createdDate, name, email, age, displayName)
  
  // TODO: Konstruktor erstellen
  
  // TODO: printProfile()-Methode implementieren
  
  // TODO: updateEmail()-Methode implementieren
  
  // TODO: getDisplayName()-Methode implementieren
}

Alle Lektionen in Grundlagen

Übe selbstständig: Online-Dart-Compiler