Rangkuman: Sistem Profil Pengguna
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Dart di Coddy. Pelajaran 29 dari 110.
Tantangan
MudahMari buat sistem profil pengguna lengkap yang menggabungkan semua konsep keamanan null yang telah kamu pelajari di bab ini. Kamu akan membuat sistem yang mengelola akun pengguna dengan gabungan informasi wajib dan detail opsional.
Kamu akan membagi kodemu ke dalam dua file:
user_profile.dart: Definisikan classUserProfileyang merepresentasikan akun pengguna. Pikirkan informasi apa yang penting (seperti nama pengguna) dan apa yang opsional (seperti bio atau nomor telepon). Class-mu harus memiliki:String usernameyang tidak dapat bernilai null, setiap pengguna harus memiliki nama penggunaString emailyang tidak dapat bernilai null, setiap pengguna harus memiliki emailString? displayNameyang dapat bernilai null, pengguna mungkin lebih suka menampilkan nama yang berbedaString? bioyang dapat bernilai null, tidak semua orang menulis bioint? ageyang dapat bernilai null, usia adalah informasi pribadi yang opsional- Constructor yang menggunakan parameter bernama dengan
requireduntukusernamedanemail - Method
getDisplayIdentity()yang mengembalikan nama tampilan jika sudah diatur, jika tidak, mengembalikan nama pengguna menggunakan?? - Method
getBioPreview()yang mengembalikan 20 karakter pertama bio diikuti...jika bio tersedia dan panjangnya lebih dari 20 karakter, bio lengkap jika panjangnya 20 karakter atau kurang, ataunulljika tidak ada bio (gunakan?.untuk akses yang aman) - Method
setDefaultBio()yang mengatur bio menjadi'Hello, I am new here!'hanya jika saat ini nilainya null, dengan menggunakan??= - Method
printProfile()yang menampilkan profil lengkap pengguna
main.dart: Impor class profil pengguna, lalu buat beberapa pengguna untuk menunjukkan seluruh fitur keamanan null:- Buat pengguna dengan nama pengguna
'alice_dev'dan email'alice@code.com', lalu atur nama tampilan menjadi'Alice', bio menjadi'Software developer passionate about clean code and testing', dan usia menjadi28 - Buat pengguna dengan nama pengguna
'bob_builder'dan email'bob@build.io', lalu atur nama tampilan saja menjadi'Bob' - Buat pengguna dengan nama pengguna
'charlie99'dan email'charlie@mail.net'(biarkan semua field opsional bernilai null) - Panggil
setDefaultBio()pada ketiga pengguna - Untuk setiap pengguna secara berurutan, panggil
printProfile(), lalu cetakIdentity: [getDisplayIdentity()], lalu cetakBio preview: [getBioPreview()]
- Buat pengguna dengan nama pengguna
Method printProfile() harus mencetak dengan format berikut:
===== User Profile =====
Username: [username]
Email: [email]
Display Name: [displayName or "Not set"]
Bio: [bio or "No bio"]
Age: [age or "Not specified"]Perhatikan bahwa bio Alice tetap tidak berubah setelah setDefaultBio() karena bio tersebut sudah memiliki nilai, sedangkan Charlie mendapatkan bio default. Perhatikan juga bagaimana pratinjau bio memotong bio Alice yang lebih panjang, tetapi menampilkan seluruh bio default Charlie yang lebih pendek.
Output yang diharapkan:
===== 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!Coba sendiri
import 'user_profile.dart';
void main() {
// TODO: Buat pengguna 'alice_dev' dengan email 'alice@code.com'
// Atur displayName menjadi 'Alice'
// Atur bio menjadi 'Software developer passionate about clean code and testing'
// Atur age menjadi 28
// TODO: Buat pengguna 'bob_builder' dengan email 'bob@build.io'
// Atur hanya displayName menjadi 'Bob'
// TODO: Buat pengguna 'charlie99' dengan email 'charlie@mail.net'
// Biarkan semua field opsional bernilai null
// TODO: Panggil setDefaultBio() untuk ketiga pengguna
// TODO: Untuk setiap pengguna sesuai urutan (alice, bob, charlie):
// 1. Panggil printProfile()
// 2. Cetak "Identity: [getDisplayIdentity()]"
// 3. Cetak "Bio preview: [getBioPreview()]"
}
Semua pelajaran di Pemrograman Berorientasi Objek
1Dasar-Dasar OOP
file Eksternallibrary dan ImporPengantar OOPClass dan ObjectKata kunci thismethodVariabel InstanceDasar-Dasar ConstructorRingkasan: Kalkulator Sederhana4Keamanan Null
Pengantar Keamanan NullBisa Null vs Tidak Bisa NullOperator ? dan !Kata Kunci late dan Keamanan NullOperator Penanganan NullKeamanan Null dalam classRangkuman: Sistem Profil Pengguna7class Abstrak & Antarmuka
class AbstrakMethod abstrakAntarmuka di DartAntarmuka ImplisitMengimplementasikan vs MemperluasBeberapa AntarmukaRingkasan: Kalkulator Bentuk10Koleksi dan Generik
Gambaran Umum list, set, dan MapKoleksi dengan Tipe AmanKelas GenerikMetode GenerikBatasan GenerikIterable dan IteratorUlasan: Penyimpanan Generik2Konstruktor dalam Dart
Konstruktor DefaultKonstruktor BernamaInitializer ListsKonstruktor KonstanKonstruktor FactoryKonstruktor RedirectingRangkuman, Pembuat Bentuk5Enkapsulasi
Member Publik vs PrivatKonvensi Prefiks _Privasi Tingkat libraryPendalaman Getter & SetterPenyembunyian InformasiRingkasan: Catatan Siswa8Mixin
Pengantar MixinMembuat MixinMenggunakan Beberapa MixinKata Kunci on pada MixinMixin vs. PewarisanMixin vs. InterfaceRangkuman: Sistem Hewan3Property Class
Anggota Instance vs StaticField Final dan ConstVariabel LateMethod dan Field StaticGetter dan SetterRangkuman: Pengelola Rekening Bank6Pewarisan
Pewarisan DasarKata Kunci superPenimpaan methodAnotasi @overrideKata Kunci class finalKonstruktor dan PewarisanRangkuman, Hierarki Karyawan9Polimorfisme
Dasar-Dasar PolimorfismePolimorfisme melalui AntarmukaPemeriksaan Tipe saat RuntimeOperator is & asKata Kunci KovarianRangkuman: Pemroses PembayaranLatihan sendiri: Compiler Dart online