Menu
Coddy logo textTech

Özet - Null'ı Güvenli Şekilde Ele Alma

Coddy'nin Dart Journey'sinin Temeller bölümünün bir parçası. Ders 82 / 94.

challenge icon

Görev

Kolay

Bir mobil uygulama için kullanıcı profili sistemi oluşturuyorsun. Dart'ın null güvenliği özelliklerini anladığını gösteren bir UserProfile sınıfı oluştur.

Aşağıdakileri içeren bir UserProfile sınıfı uygula:

  1. Null olamayan özellikler (her zaman bir değere sahip olmalıdır):
    • id türü int
    • createdDate türü String
  2. Null olabilen özellikler (başlatılırken null olabilir):
    • name türü String?
    • email türü String?
    • age türü int?
  3. Geç başlatılan özellik:
    • displayName türü String olup late anahtar sözcüğü kullanılarak bildirilir
  4. Yapıcı:
    • Gerekli parametreler olarak id ve createdDate değerlerini kabul eder
    • displayName değerini "Guest" olarak başlatır
  5. Metot: <strong>void printProfile()</strong> Kullanıcı profilini aşağıdaki biçimde yazdırır:

    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. Metot: <strong>void updateEmail(String? newEmail)</strong>
    • email özelliğini yeni değerle günceller.
  7. Metot: <strong>String getDisplayName()</strong>
    • name null değilse displayName = name! değerini atar (null assertion operatörünü kullanarak)
    • displayName değerinin mevcut değerini döndürür

Önemli: name özelliğini güncelledikten sonra profili yeniden yazdırmadan önce getDisplayName() alanını güncellemek için displayName metodunu çağırmalısın.

Beklenen çıktıda gösterildiği gibi bir profil oluşturmak, profili güncellemek ve bilgileri görüntülemek için kodu tamamla.

Kendin dene

void main() {
  // Bir kullanıcı profili oluştur
  final profile = UserProfile(1, 'today');
  
  // İlk profili yazdır
  profile.printProfile();
  
  // Profili güncelle
  profile.name = 'John Doe';
  profile.updateEmail('john@example.com');
  profile.age = 30;
  
  // Görünen adı güncelle ve güncellenmiş profili yazdır
  profile.getDisplayName(); // displayName'i güncellemek için bunu çağır
  profile.printProfile();
}

class UserProfile {
  // TODO: Özellikleri ekle (id, createdDate, name, email, age, displayName)
  
  // TODO: Constructor oluştur
  
  // TODO: printProfile() metodunu uygula
  
  // TODO: updateEmail() metodunu uygula
  
  // TODO: getDisplayName() metodunu uygula
}

Temeller bölümündeki tüm dersler

Kendi başına pratik yap: Online Dart derleyicisi