Ringkasan: Catatan Siswa
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Dart di Coddy. Pelajaran 35 dari 110.
Tantangan
MudahMari kita buat sistem catatan siswa yang menggabungkan semua konsep enkapsulasi yang telah kamu pelajari di bab ini. Kamu akan membuat class Student yang melindungi data akademik sensitif dengan baik sekaligus menyediakan akses terkendali melalui getter, setter, dan property terhitung.
Kamu akan mengatur kodemu ke dalam dua file:
student.dart: Definisikan classStudentyang mengelola catatan akademik dengan enkapsulasi yang tepat:final String id- ID siswa tidak boleh berubah setelah dibuatString namepublik - nama dapat diperbaruiList<int> _gradesprivat - daftar nilai mentah harus dilindungi- Sebuah constructor yang menerima id, nama, dan daftar nilai awal
- Getter
gradeCountyang mengembalikan jumlah nilai yang tercatat - Getter terhitung
averageyang menghitung dan mengembalikan rata-rata semua nilai sebagaidouble(mengembalikan0.0jika tidak ada nilai) - Getter terhitung
letterGradeyang mengembalikan huruf berdasarkan rata-rata:'A'untuk 90+,'B'untuk 80-89,'C'untuk 70-79,'D'untuk 60-69, dan'F'untuk di bawah 60 - Method
addGrade(int grade)yang hanya menerima nilai antara 0 dan 100 (inklusif). Jika valid, tambahkan nilai tersebut dan cetakGrade [grade] added for [name]. Jika tidak valid, cetakInvalid grade: [grade] - Method
getHighestGrade()yang mengembalikan nilai tertinggi, atau0jika tidak ada nilai - Method
displayRecord()yang menampilkan ringkasan akademik siswa
main.dart: Impor class siswa dan tunjukkan cara kerja enkapsulasi:- Buat siswa dengan id
'STU001', nama'Emma', dan nilai awal[85, 92, 78] - Panggil
displayRecord() - Tambahkan nilai
95 - Coba tambahkan nilai tidak valid
150 - Tambahkan nilai
88 - Panggil
displayRecord() - Cetak
Highest grade: [highest]
- Buat siswa dengan id
Method displayRecord() harus mencetak dengan format ini:
===== Student Record =====
ID: [id]
Name: [name]
Grades Recorded: [gradeCount]
Average: [average]
Letter Grade: [letterGrade]Output yang diharapkan:
===== Student Record =====
ID: STU001
Name: Emma
Grades Recorded: 3
Average: 85.0
Letter Grade: B
Grade 95 added for Emma
Invalid grade: 150
Grade 88 added for Emma
===== Student Record =====
ID: STU001
Name: Emma
Grades Recorded: 5
Average: 87.6
Letter Grade: B
Highest grade: 95Coba sendiri
import 'student.dart';
void main() {
// TODO: Buat siswa dengan id 'STU001', nama 'Emma', dan nilai awal [85, 92, 78]
// TODO: Panggil displayRecord()
// TODO: Tambahkan nilai 95
// TODO: Coba tambahkan nilai tidak valid, yaitu 150
// TODO: Tambahkan nilai 88
// TODO: Panggil displayRecord()
// TODO: Cetak "Highest grade: [highest]"
}
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