Antarmuka Admin
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Dart di Coddy. Pelajaran 105 dari 110.
Tantangan
MudahPada pelajaran sebelumnya, kamu menambahkan fitur pencarian ke class Library. Sekarang, mari buat antarmuka admin yang memungkinkan pengguna dengan hak istimewa mengelola inventaris library, menambahkan buku baru dan menghapus buku yang sudah ada.
Kamu akan memperkenalkan class Admin baru dan meningkatkan kemampuan administratif Library-mu:
book.dart: Pertahankan classBookyang sudah ada tanpa perubahan.user.dart: Pertahankan classUseryang sudah ada tanpa perubahan.admin.dart: Buat classAdminbaru yang merepresentasikan administrator library. Admin memilikiid(String) danname(String). OverridetoString()agar mengembalikanAdmin [id]: name.library.dart: Tambahkan fitur administratif ke classLibrary-mu:- Tambahkan list untuk menyimpan admin yang terdaftar
registerAdmin(Admin admin)- menambahkan admin ke libraryaddBookAsAdmin(String adminId, Book book)- jika admin terdaftar, tambahkan buku dan cetakadminId added "title". Jika admin tidak terdaftar, cetakUnauthorized.removeBook(String adminId, String isbn)- jika admin dan buku terdaftar, hapus buku dari library dan cetakadminId removed "title". Jika admin tidak terdaftar, cetakUnauthorized. Jika buku tidak terdaftar, cetakBook not found.getBookCount()- mengembalikan jumlah total buku di library
main.dart: Tunjukkan cara kerja antarmuka admin. BuatLibrarydan daftarkan admin (A001,Sarah Admin). Gunakan admin tersebut untuk menambahkan tiga buku:978-0-13-468599-1,The Pragmatic Programmer,David Thomas978-0-596-51774-8,JavaScript: The Good Parts,Douglas Crockford978-0-13-235088-4,Clean Code,Robert Martin
Total books: X. Lalu, coba tambahkan buku dengan id admin yang belum terdaftar, yaituA999. Hapus buku kedua menggunakan admin yang terdaftar. Cetak jumlah akhir buku.
Output yang diharapkan:
A001 added "The Pragmatic Programmer"
A001 added "JavaScript: The Good Parts"
A001 added "Clean Code"
Total books: 3
Unauthorized
A001 removed "JavaScript: The Good Parts"
Total books: 2Coba sendiri
import 'book.dart';
import 'user.dart';
import 'library.dart';
import 'admin.dart';
void main() {
// TODO: Buat Library
// TODO: Buat dan daftarkan admin (A001, Sarah Admin)
// TODO: Gunakan admin untuk menambahkan tiga buku:
// - 978-0-13-468599-1, The Pragmatic Programmer, David Thomas
// - 978-0-596-51774-8, JavaScript: The Good Parts, Douglas Crockford
// - 978-0-13-235088-4, Clean Code, Robert Martin
// TODO: Tampilkan jumlah buku dengan format "Total books: X"
// TODO: Coba tambahkan buku dengan id admin A999 yang belum terdaftar
// TODO: Hapus buku kedua (978-0-596-51774-8) menggunakan admin yang terdaftar
// TODO: Tampilkan jumlah buku terakhir
}
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 Generik13Konsep OOP Lanjutan
Komposisi vs PewarisanExtension methodClass yang Dapat DipanggilSealed class (Dart 3)Records (Dart 3)Pola dan Pencocokan (3.0)Enum dengan method16Proyek: Manajemen library
Ringkasan Proyekclass Buku dan Pengguna2Konstruktor 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