Menu
Coddy logo textTech

Récapitulatif - Gérer null en sécurité

Fait partie de la section Fondamentaux du Journey Dart de Coddy — leçon 82 sur 94.

challenge icon

Défi

Facile

Vous développez un système de profil utilisateur pour une application mobile. Créez une classe UserProfile qui démontre votre compréhension des fonctionnalités de null safety de Dart.

Implémentez une classe UserProfile avec les éléments suivants :

  1. Propriétés non nullables (doivent toujours avoir une valeur) :
    • id de type int
    • createdDate de type String
  2. Propriétés nullables (peuvent être null à l'initialisation) :
    • name de type String?
    • email de type String?
    • age de type int?
  3. Propriété initialisée tardivement :
    • displayName de type String, déclarée en utilisant le mot-clé late
  4. Constructeur :
    • Accepte id et createdDate comme paramètres requis
    • Initialise displayName à "Guest"
  5. Méthode : <strong>void printProfile()</strong> Affiche le profil utilisateur avec le format suivant :

    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. Méthode : <strong>void updateEmail(String? newEmail)</strong>
    • Met à jour la propriété email avec la nouvelle valeur.
  7. Méthode : <strong>String getDisplayName()</strong>
    • Si name n'est pas null, définit displayName = name! (en utilisant l'opérateur d'affirmation null)
    • Retourne la valeur actuelle de displayName

Important : Après avoir mis à jour la propriété name, vous devez appeler getDisplayName() pour mettre à jour le champ displayName avant d'imprimer à nouveau le profil.

Complétez le code pour créer un profil, le mettre à jour et afficher les informations comme indiqué dans la sortie attendue.

Essayez vous-même

void main() {
  // Créer un profil utilisateur
  final profile = UserProfile(1, 'today');
  
  // Afficher le profil initial
  profile.printProfile();
  
  // Mettre à jour le profil
  profile.name = 'John Doe';
  profile.updateEmail('john@example.com');
  profile.age = 30;
  
  // Mettre à jour le nom d'affichage et afficher le profil mis à jour
  profile.getDisplayName(); // Appeler ceci pour mettre à jour displayName
  profile.printProfile();
}

class UserProfile {
  // TODO: Ajouter les propriétés (id, createdDate, name, email, age, displayName)
  
  // TODO: Créer le constructeur
  
  // TODO: Implémenter la méthode printProfile()
  
  // TODO: Implémenter la méthode updateEmail()
  
  // TODO: Implémenter la méthode getDisplayName()
}

Toutes les leçons de Fondamentaux