Ringkasan: Koleksi Kustom
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Dart di Coddy. Pelajaran 75 dari 110.
Tantangan
MudahMari buat sistem ScoreBoard yang melacak skor pemain dan menunjukkan cara berbagai method khusus bekerja bersama untuk menghasilkan class yang rapi dan profesional!
Kamu akan menyusun kodemu ke dalam dua file:
score_board.dart: Buat classPlayerdan classScoreBoardyang bekerja bersama untuk mengelola skor permainan.Class
Playermilikmu harus memilikiname(String) danscore(int). Class ini perlu:- Mengimplementasikan
Comparable<Player>agar pemain dapat diurutkan berdasarkan skor secara menurun, dari yang tertinggi - Melakukan override terhadap
==danhashCodeagar dua pemain dengan nama yang sama dianggap setara, terlepas dari skornya - Melakukan override terhadap
toString()agar mengembalikan:[name]: [score] points
Class
ScoreBoardmilikmu harus menyimpan list pemain dan menyediakan:- method
addPlayer(Player player)yang menambahkan pemain hanya jika pemain tersebut belum ada, gunakan implementasi kesetaraanmu! - method
call()yang tidak menerima argumen dan mengembalikan salinan list pemain yang sudah diurutkan berdasarkan skor, dari yang tertinggi - Melakukan override terhadap
toString()untuk menampilkan semua pemain tanpa diurutkan, satu pemain per baris, dengan headerScoreBoard:pada baris pertama
- Mengimplementasikan
main.dart: Impor file papan skormu dan tunjukkan cara semua method khusus ini bekerja bersama:- Buat sebuah
ScoreBoard - Tambahkan pemain berikut:
Alicedengan150,Bobdengan200,Charliedengan175 - Coba tambahkan
Alicelagi dengan skor999, penambahan ini seharusnya ditolak karena duplikat - Cetak papan skor menggunakan
toString()miliknya - Cetak satu baris kosong
- Cetak
Rankings: - Panggil papan skor seperti sebuah fungsi untuk mendapatkan peringkat yang sudah diurutkan, lalu cetak setiap pemain
- Buat sebuah
Tantangan ini menggabungkan toString() untuk menampilkan data, == dan hashCode untuk mendeteksi duplikat, compareTo() untuk mengurutkan, serta call() untuk antarmuka callable yang praktis!
Output yang diharapkan:
ScoreBoard:
Alice: 150 points
Bob: 200 points
Charlie: 175 points
Rankings:
Bob: 200 points
Charlie: 175 points
Alice: 150 pointsCoba sendiri
import 'score_board.dart';
void main() {
// TODO: Buat ScoreBoard
// TODO: Tambahkan pemain: Alice (150), Bob (200), Charlie (175)
// TODO: Coba tambahkan Alice lagi dengan skor 999 (harus ditolak karena duplikat)
// TODO: Cetak papan skor menggunakan toString()
// TODO: Cetak baris kosong
// TODO: Cetak "Rankings:"
// TODO: Panggil papan skor seperti fungsi untuk mendapatkan peringkat yang terurut, lalu cetak setiap pemain
}
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 Hewan11Metode Khusus
Override toString()Override hashCode & ==Antarmuka Comparablecall() methodOverride noSuchMethodRingkasan: Koleksi Kustom3Property 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