Ringkasan: Kalkulator Bentuk
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Dart di Coddy. Pelajaran 49 dari 110.
Tantangan
MudahMari bangun sistem kalkulator bentuk yang menggabungkan class abstrak dan antarmuka untuk membuat toolkit geometri yang fleksibel. Kamu akan merancang hierarki class tempat berbagai bentuk berbagi perilaku umum melalui abstraksi, sementara setiap bentuk menyediakan perhitungannya sendiri.
Kamu akan mengatur kodemu ke dalam tiga file:
shape.dart: Definisikan class dasar abstrak dan antarmukamu di sini:- Class abstrak
Shapedengan propertyString namedan konstruktor. Sertakan method abstrakdouble calculateArea()dandouble calculatePerimeter(). Tambahkan method biasadescribe()yang mencetak[name] - Area: [calculateArea()], Perimeter: [calculatePerimeter()] - Class
Drawabledengan methoddraw()yang mencetakDrawing shape...
- Class abstrak
shapes.dart: Imporshape.dartdan buat class bentuk konkretnya:- Class
Rectangleyang memperluasShapedan mengimplementasikanDrawable. Tambahkan propertydouble widthdandouble height. Hitung luas denganwidth * heightdan keliling dengan2 * (width + height). Methoddraw()harus mencetakDrawing rectangle [width]x[height] - Class
Circleyang memperluasShapedan mengimplementasikanDrawable. Tambahkan propertydouble radius. Gunakan3.14159untuk pi. Hitung luas denganpi * radius * radiusdan keliling (lingkaran) dengan2 * pi * radius. Methoddraw()harus mencetakDrawing circle with radius [radius]
- Class
main.dart: Imporshapes.dartdan tunjukkan kalkulator bentukmu:- Buat
Rectanglebernama'Rectangle'dengan lebar5.0dan tinggi3.0 - Buat
Circlebernama'Circle'dengan radius4.0 - Untuk setiap bentuk, panggil
draw(), laludescribe() - Cetak satu baris kosong di antara kedua bentuk
- Buat
Tantangan ini menunjukkan cara class abstrak mendefinisikan struktur bersama (setiap bentuk memiliki perhitungan luas dan keliling), sementara antarmuka menambahkan kemampuan lain (bentuk yang bisa digambar). Setiap class konkret memperluas class abstrak untuk identitas utamanya dan mengimplementasikan antarmuka untuk fungsionalitas tambahan.
Output yang diharapkan:
Drawing rectangle 5.0x3.0
Rectangle - Area: 15.0, Perimeter: 16.0
Drawing circle with radius 4.0
Circle - Area: 50.26544, Perimeter: 25.13272Coba sendiri
import 'shapes.dart';
void main() {
// TODO: Buat Rectangle bernama 'Rectangle' dengan lebar 5.0 dan tinggi 3.0
// TODO: Buat Circle bernama 'Circle' dengan jari-jari 4.0
// TODO: Untuk persegi panjang, panggil draw() lalu describe()
// TODO: Cetak baris kosong
// TODO: Untuk lingkaran, panggil draw() lalu describe()
}
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