Menu
Coddy logo textTech

Tekrar - 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ğin tüm null safety kavramlarını bir araya getiren eksiksiz bir kullanıcı profil sistemi oluşturalım. Gerekli bilgileri ve isteğe bağlı ayrıntıları birlikte yöneten bir sistem oluşturacaksın.

Kodunu iki dosyada düzenleyeceksin:

  • user_profile.dart: Bir kullanıcı hesabını temsil eden UserProfile sınıfını tanımla. Hangi bilgilerin (kullanıcı adı gibi) gerekli, hangilerinin (biyografi veya telefon numarası gibi) isteğe bağlı olduğunu düşün. Sınıfında şunlar bulunmalı:
    • Null kabul etmeyen bir String username - her kullanıcının bir kullanıcı adı olmalı
    • Null kabul etmeyen bir String email - her kullanıcının bir e-posta adresi olmalı
    • Null kabul edebilen bir String? displayName - kullanıcılar farklı bir ad göstermeyi tercih edebilir
    • Null kabul edebilen bir String? bio - herkes biyografi yazmaz
    • Null kabul edebilen bir int? age - yaş, isteğe bağlı kişisel bir bilgidir
    • required ve username için email kullanarak adlandırılmış parametrelere sahip bir oluşturucu
    • Ayarlanmışsa görünen adı, aksi takdirde getDisplayIdentity() kullanarak kullanıcı adını döndüren bir ?? yöntemi
    • Biyografi varsa ve 20 karakterden uzunsa biyografinin ilk 20 karakterini ve ardından getBioPreview() ifadesini, 20 karakter veya daha kısaysa biyografinin tamamını, biyografi yoksa ... döndüren bir null yöntemi (güvenli erişim için ?. kullan)
    • Yalnızca biyografi şu anda null ise setDefaultBio() kullanarak biyografiyi 'Hello, I am new here!' değerine ayarlayan bir ??= yöntemi
    • Kullanıcının eksiksiz profilini görüntüleyen bir printProfile() yöntemi
  • main.dart: Kullanıcı profil sınıfını içe aktar ve null safety özelliklerinin tüm kapsamını göstermek için birkaç kullanıcı oluştur:
    • Kullanıcı adı 'alice_dev' ve e-posta adresi 'alice@code.com' olan bir kullanıcı oluştur; ardından görünen adı 'Alice', biyografiyi 'Software developer passionate about clean code and testing' ve yaşı 28 olarak ayarla
    • Kullanıcı adı 'bob_builder' ve e-posta adresi 'bob@build.io' olan bir kullanıcı oluştur; ardından yalnızca görünen adı 'Bob' olarak ayarla
    • Kullanıcı adı 'charlie99' ve e-posta adresi 'charlie@mail.net' olan bir kullanıcı oluştur (isteğe bağlı tüm alanları null bırak)
    • Üç kullanıcının tümünde setDefaultBio() yöntemini çağır
    • Her kullanıcı için sırasıyla printProfile() yöntemini çağır, ardından Identity: [getDisplayIdentity()] yazdır ve sonra Bio preview: [getBioPreview()] yazdır

printProfile() yöntemi şu biçimde yazdırmalı:

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

setDefaultBio() çağrıldıktan sonra Alice'in biyografisinin, zaten bir değere sahip olduğu için değişmeden kaldığına dikkat et. Buna karşılık Charlie'ye varsayılan biyografi atanır. Ayrıca biyografi ön izlemesinin Alice'in daha uzun biyografisini kısalttığını, ancak Charlie'nin daha kısa varsayılan biyografisini tamamen gösterdiğini gözlemle.

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

Kendi başına pratik yap: Online Dart derleyicisi