Konstruktor Default
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Dart di Coddy. Pelajaran 10 dari 110.
Jika kamu tidak mendefinisikan constructor apa pun di dalam class, Dart secara otomatis menyediakan constructor default. Constructor ini tidak memiliki parameter dan hanya membuat instance dari class.
class Book {
String title = 'Unknown';
int pages = 0;
}
// Dart menyediakan konstruktor bawaan: Book()
Book myBook = Book();
print(myBook.title); // UnknownConstructor default tidak terlihat dalam kodemu, tetapi tetap ada. Constructor ini tidak menerima argumen dan menginisialisasi object dengan nilai default apa pun yang telah kamu tetapkan untuk variabel instance.
Setelah kamu mendefinisikan constructor sendiri, constructor default tidak lagi disediakan secara otomatis. Jika kamu masih menginginkan constructor tanpa argumen di samping constructor berparameter, kamu harus membuatnya secara eksplisit:
class Book {
String title;
int pages;
// Konstruktor default yang didefinisikan secara eksplisit
Book() : title = 'Unknown', pages = 0;
// Konstruktor dengan parameter
Book.withDetails(this.title, this.pages);
}
Book book1 = Book(); // Menggunakan konstruktor default
Book book2 = Book.withDetails('Dart', 300); // Menggunakan konstruktor dengan parameterKonstruktor default eksplisit menggunakan daftar inisialisasi (bagian setelah titik dua) untuk menetapkan nilai awal. Pola ini berguna saat kamu ingin menawarkan beberapa cara untuk membuat object dari class yang sama.
Tantangan
MudahMari buat sistem inventaris produk sederhana yang menunjukkan constructor default implisit dan eksplisit.
Kamu akan membuat dua file untuk mengatur kodemu:
product.dart: Definisikan classProductyang menawarkan dua cara untuk membuat produk:- Constructor default eksplisit
Product()yang menginisialisasinamedengan'Unnamed'danpricedengan0.0menggunakan initializer list - Constructor bernama
Product.withDetailsyang menerima parameternamedanprice - Method
display()yang mencetak:Product: [name] - $[price]
- Constructor default eksplisit
main.dart: Impor class produkmu dan buat dua produk:- Satu menggunakan constructor default
- Satu menggunakan constructor bernama dengan
'Laptop'dan999.99
display()pada setiap produk.
Class Product-mu harus memiliki dua variabel instance:
String namedouble price
Format output yang diharapkan:
Product: Unnamed - $0.0
Product: Laptop - $999.99Coba sendiri
import 'product.dart';
void main() {
// TODO: Buat produk menggunakan konstruktor bawaan
// TODO: Buat produk menggunakan konstruktor bernama dengan 'Laptop' dan 999.99
// TODO: Panggil display() pada setiap produk
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
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