Menu
Coddy logo textTech

Özet - Kullanıcı Profili Sistemi

Coddy'nin Dart Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 29 / 110.

challenge icon

Görev

Kolay

Bu bölümde öğrendiğiniz tüm null güvenliği kavramlarını bir araya getiren eksiksiz bir kullanıcı profili sistemi oluşturalım. Gerekli bilgiler ile isteğe bağlı ayrıntıların bir karışımından oluşan kullanıcı hesaplarını yöneten bir sistem oluşturacaksınız.

Kodunuzu iki dosya halinde düzenleyeceksiniz:

  • user_profile.dart: Bir kullanıcı hesabını temsil eden bir UserProfile sınıfı tanımlayın. Hangi bilgilerin temel (kullanıcı adı gibi) hangilerinin isteğe bağlı (biyografi veya telefon numarası gibi) olduğunu düşünün. Sınıfınız şunlara sahip olmalıdır:
    • Null olamaz bir String username - her kullanıcının bir kullanıcı adı olmalıdır
    • Null olamaz bir String email - her kullanıcının bir e-postası olmalıdır
    • Null olabilir bir String? displayName - kullanıcılar farklı bir ad göstermeyi tercih edebilir
    • Null olabilir bir String? bio - herkes biyografi yazmaz
    • Null olabilir bir int? age - yaş isteğe bağlı kişisel bir bilgidir
    • username ve email için required anahtar kelimesini kullanan isimlendirilmiş parametreli bir yapıcı (constructor)
    • Eğer ayarlanmışsa görünen adı, aksi takdirde ?? kullanarak kullanıcı adını döndüren bir getDisplayIdentity() metodu
    • Eğer biyografi varsa ve 20 karakterden uzunsa biyografinin ilk 20 karakterini ve ardından ... döndüren, 20 karakter veya daha kısaysa biyografinin tamamını döndüren veya biyografi yoksa null döndüren bir getBioPreview() metodu (güvenli erişim için ?. kullanın)
    • Yalnızca biyografi şu anda null ise ??= kullanarak biyografiyi 'Hello, I am new here!' olarak ayarlayan bir setDefaultBio() metodu
    • Kullanıcının tam profilini görüntüleyen bir printProfile() metodu
  • main.dart: Kullanıcı profili sınıfınızı içe aktarın ve null güvenliği özelliklerinin tüm kapsamını göstermek için birkaç kullanıcı oluşturun:
    • Kullanıcı adı 'alice_dev' ve e-postası 'alice@code.com' olan bir kullanıcı oluşturun, ardından görünen adı 'Alice', biyografiyi 'Software developer passionate about clean code and testing' ve yaşı 28 olarak ayarlayın
    • Kullanıcı adı 'bob_builder' ve e-postası 'bob@build.io' olan bir kullanıcı oluşturun, ardından yalnızca görünen adı 'Bob' olarak ayarlayın
    • Kullanıcı adı 'charlie99' ve e-postası 'charlie@mail.net' olan bir kullanıcı oluşturun (tüm isteğe bağlı alanları null olarak bırakın)
    • Her üç kullanıcıda da setDefaultBio() metodunu çağırın
    • Sırasıyla her kullanıcı için printProfile() metodunu çağırın, ardından Identity: [getDisplayIdentity()] yazdırın ve sonra Bio preview: [getBioPreview()] yazdırın

printProfile() metodu şu formatta yazdırmalıdır:

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

Alice'in biyografisinin zaten bir değeri olduğu için setDefaultBio() sonrasında nasıl değişmeden kaldığına, Charlie'ye ise varsayılan biyografinin nasıl atandığına dikkat edin. Ayrıca biyografi önizlemesinin Alice'in uzun biyografisini nasıl kısalttığını, ancak Charlie'nin daha kısa olan varsayılan biyografisini nasıl tam olarak gösterdiğini gözlemleyin.

Beklenen çıktı:

===== 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!

Kendin dene

import 'user_profile.dart';

void main() {
  // TODO: 'alice@code.com' e-postasıyla 'alice_dev' kullanıcısını oluşturun
  // displayName değerini 'Alice' olarak ayarlayın
  // bio değerini 'Software developer passionate about clean code and testing' olarak ayarlayın
  // age değerini 28 olarak ayarlayın
  
  // TODO: 'bob@build.io' e-postasıyla 'bob_builder' kullanıcısını oluşturun
  // Sadece displayName değerini 'Bob' olarak ayarlayın
  
  // TODO: 'charlie@mail.net' e-postasıyla 'charlie99' kullanıcısını oluşturun
  // Tüm isteğe bağlı alanları null olarak bırakın
  
  // TODO: Her üç kullanıcıda da setDefaultBio() fonksiyonunu çağırın
  
  // TODO: Sırasıyla her bir kullanıcı için (alice, bob, charlie):
  // 1. printProfile() fonksiyonunu çağırın
  // 2. "Identity: [getDisplayIdentity()]" yazdırın
  // 3. "Bio preview: [getBioPreview()]" yazdırın
}

Nesne Yönelimli Programlama bölümündeki tüm dersler