Ulasan: Penyimpanan Generik
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Dart di Coddy. Pelajaran 69 dari 110.
Tantangan
MudahMari buat sistem penyimpanan generik yang menggabungkan semua yang telah kamu pelajari tentang koleksi dan generik! Kamu akan membuat class Storage<T> yang dapat menyimpan item dengan tipe apa pun, mengambilnya, dan diiterasi menggunakan perulangan for-in.
Kamu akan mengatur kodemu ke dalam dua file:
storage.dart: Buat sistem penyimpanan generikmu dengan dua class:- Class
StorageIterator<T>yang mengimplementasikanIterator<T>untuk memungkinkan iterasi atas item yang disimpan - Class
Storage<T>yang memperluasIterable<T>dengan kemampuan berikut:- list privat untuk menyimpan item secara internal
- method
add(T item)untuk menyimpan item baru - method
getAt(int index)yang mengembalikan item pada indeks yang diberikan - getter
countyang mengembalikan jumlah item yang disimpan - getter
iteratoryang mengembalikanStorageIteratoruntuk item yang disimpan
- Class
main.dart: Impor file penyimpananmu dan tunjukkan penggunaan penyimpanan generik dengan tipe yang berbeda:- Buat
Storage<String>dan tambahkan tiga nama kota:'Paris','Tokyo','Sydney' - Cetak jumlah item
- Cetak item pada indeks 1
- Gunakan perulangan
for-inuntuk mencetak setiap kota pada barisnya sendiri - Cetak satu baris kosong
- Buat
Storage<int>dan tambahkan empat angka:100,200,300,400 - Gunakan method
whereuntuk memfilter nilai yang lebih besar dari 150, lalu cetak list hasilnya
- Buat
Sistem penyimpananmu seharusnya dapat bekerja dengan lancar dengan tipe apa pun sambil tetap menjaga keamanan tipe sepenuhnya. Karena sistem ini memperluas Iterable, sistem ini otomatis mendapatkan akses ke method yang andal seperti where, map, dan fold!
Output yang diharapkan:
Count: 3
Item at 1: Tokyo
Paris
Tokyo
Sydney
[200, 300, 400]Coba sendiri
import 'storage.dart';
void main() {
// TODO: Buat Storage<String> untuk menyimpan kota
// Tambahkan tiga kota: 'Paris', 'Tokyo', 'Sydney'
// TODO: Cetak jumlah item (format: "Count: X")
// TODO: Cetak item pada indeks 1 (format: "Item at 1: X")
// TODO: Gunakan loop for-in untuk mencetak setiap kota pada baris tersendiri
// TODO: Cetak baris kosong
print('');
// TODO: Buat Storage<int> untuk menyimpan angka
// Tambahkan empat angka: 100, 200, 300, 400
// TODO: Gunakan method where untuk menyaring nilai yang lebih besar dari 150
// Lalu cetak list hasilnya menggunakan toList()
}
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