Menu
Coddy logo textTech

Zusammenfassung – Benutzerprofil-System

Teil des Abschnitts Objektorientierte Programmierung der Dart-Journey von Coddy — Lektion 29 von 110.

challenge icon

Aufgabe

Einfach

Lassen Sie uns ein vollständiges Benutzerprofilsystem erstellen, das alle Null-Safety-Konzepte zusammenführt, die Sie in diesem Kapitel gelernt haben. Sie werden ein System erstellen, das Benutzerkonten mit einer Mischung aus erforderlichen Informationen und optionalen Details verwaltet.

Sie werden Ihren Code in zwei Dateien organisieren:

  • user_profile.dart: Definieren Sie eine Klasse UserProfile, die ein Benutzerkonto repräsentiert. Überlegen Sie, welche Informationen wesentlich sind (wie ein Benutzername) und welche optional sind (wie eine Biografie oder Telefonnummer). Ihre Klasse sollte Folgendes enthalten:
    • Einen nicht-nullbaren String username - jeder Benutzer muss einen Benutzernamen haben
    • Einen nicht-nullbaren String email - jeder Benutzer muss eine E-Mail haben
    • Einen nullbaren String? displayName - Benutzer möchten vielleicht einen anderen Namen anzeigen
    • Einen nullbaren String? bio - nicht jeder schreibt eine Biografie
    • Einen nullbaren int? age - das Alter ist eine optionale persönliche Information
    • Einen Konstruktor mit benannten Parametern und required für username und email
    • Eine Methode getDisplayIdentity(), die den Anzeigenamen zurückgibt, falls gesetzt, andernfalls den Benutzernamen unter Verwendung von ?? zurückgibt
    • Eine Methode getBioPreview(), die die ersten 20 Zeichen der Biografie gefolgt von ... zurückgibt, wenn die Biografie existiert und länger als 20 Zeichen ist, die vollständige Biografie, wenn sie 20 Zeichen oder weniger lang ist, oder null, wenn keine Biografie existiert (verwenden Sie ?. für den sicheren Zugriff)
    • Eine Methode setDefaultBio(), die die Biografie nur dann auf 'Hello, I am new here!' setzt, wenn sie aktuell null ist, unter Verwendung von ??=
    • Eine Methode printProfile(), die das vollständige Profil des Benutzers anzeigt
  • main.dart: Importieren Sie Ihre Benutzerprofil-Klasse und erstellen Sie mehrere Benutzer, um die gesamte Bandbreite der Null-Safety-Funktionen zu demonstrieren:
    • Erstellen Sie einen Benutzer mit dem Benutzernamen 'alice_dev' und der E-Mail 'alice@code.com', setzen Sie dann den Anzeigenamen auf 'Alice', die Biografie auf 'Software developer passionate about clean code and testing' und das Alter auf 28
    • Erstellen Sie einen Benutzer mit dem Benutzernamen 'bob_builder' und der E-Mail 'bob@build.io', setzen Sie dann nur den Anzeigenamen auf 'Bob'
    • Erstellen Sie einen Benutzer mit dem Benutzernamen 'charlie99' und der E-Mail 'charlie@mail.net' (lassen Sie alle optionalen Felder auf null)
    • Rufen Sie setDefaultBio() für alle drei Benutzer auf
    • Rufen Sie für jeden Benutzer nacheinander printProfile() auf, geben Sie dann Identity: [getDisplayIdentity()] aus und anschließend Bio preview: [getBioPreview()]

Die Methode printProfile() sollte in diesem Format drucken:

===== User Profile =====
Username: [username]
Email: [email]
Display Name: [displayName or "Not set"]
Bio: [bio or "No bio"]
Age: [age or "Not specified"]

Beachten Sie, wie Alices Biografie nach setDefaultBio() unverändert bleibt, da sie bereits einen Wert hat, während Charlie die Standardbiografie zugewiesen bekommt. Beobachten Sie auch, wie die Biografie-Vorschau Alices längere Biografie kürzt, aber Charlies kürzere Standardbiografie vollständig anzeigt.

Erwartete Ausgabe:

===== User Profile =====
Username: alice_dev
Email: alice@code.com
Display Name: Alice
Bio: Software developer passionate about clean code and testing
Age: 28
Identity: Alice
Bio preview: Software developer p...
===== User Profile =====
Username: bob_builder
Email: bob@build.io
Display Name: Bob
Bio: Hello, I am new here!
Age: Not specified
Identity: Bob
Bio preview: Hello, I am new here!
===== User Profile =====
Username: charlie99
Email: charlie@mail.net
Display Name: Not set
Bio: Hello, I am new here!
Age: Not specified
Identity: charlie99
Bio preview: Hello, I am new here!

Probier es selbst

import 'user_profile.dart';

void main() {
  // TODO: Erstelle den Benutzer 'alice_dev' mit der E-Mail 'alice@code.com'
  // Setze displayName auf 'Alice'
  // Setze bio auf 'Software developer passionate about clean code and testing'
  // Setze age auf 28
  
  // TODO: Erstelle den Benutzer 'bob_builder' mit der E-Mail 'bob@build.io'
  // Setze nur displayName auf 'Bob'
  
  // TODO: Erstelle den Benutzer 'charlie99' mit der E-Mail 'charlie@mail.net'
  // Lasse alle optionalen Felder auf null
  
  // TODO: Rufe setDefaultBio() für alle drei Benutzer auf
  
  // TODO: Für jeden Benutzer in der Reihenfolge (alice, bob, charlie):
  // 1. Rufe printProfile() auf
  // 2. Drucke "Identity: [getDisplayIdentity()]"
  // 3. Drucke "Bio preview: [getBioPreview()]"
}

Alle Lektionen in Objektorientierte Programmierung