Konstruktor Bernama
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Dart di Coddy. Pelajaran 11 dari 110.
Constructor bernama memungkinkan kamu membuat beberapa constructor untuk sebuah class, masing-masing dengan nama deskriptif yang menjelaskan tujuannya. Ini sangat berguna saat kamu memerlukan berbagai cara untuk menginisialisasi sebuah object.
Sintaks menggunakan nama class yang diikuti titik dan nama konstruktor:
class Point {
int x;
int y;
// Konstruktor biasa
Point(this.x, this.y);
// Konstruktor bernama untuk titik asal
Point.origin() : x = 0, y = 0;
// Konstruktor bernama dari satu nilai
Point.diagonal(int value) : x = value, y = value;
}Setiap konstruktor bernama menyediakan cara yang jelas dan mudah dibaca untuk membuat object:
Point p1 = Point(3, 5);
Point p2 = Point.origin();
Point p3 = Point.diagonal(10);
print('p1: (${p1.x}, ${p1.y})'); // p1: (3, 5)
print('p2: (${p2.x}, ${p2.y})'); // p2: (0, 0)
print('p3: (${p3.x}, ${p3.y})'); // p3: (10, 10)Konstruktor bernama membuat kodemu lebih ekspresif. Daripada menebak arti Point(0, 0), Point.origin() langsung menyampaikan maksudnya. Pola ini umum dalam library Dart dan membantu membuat kode yang mendokumentasikan dirinya sendiri.
Tantangan
MudahMari buat konverter suhu yang menunjukkan keunggulan konstruktor bernama. Kamu akan membuat class Temperature yang dapat diinisialisasi dengan beberapa cara, bergantung pada satuan awalnya.
Kamu akan mengatur kodemu dalam dua file:
temperature.dart: Definisikan classTemperaturedengan variabel instancedouble celsius. Class-mu harus menyediakan tiga cara untuk membuat suhu:- Konstruktor biasa
Temperature(this.celsius)yang menerima nilai Celsius secara langsung - Konstruktor bernama
Temperature.fromFahrenheityang menerima nilai Fahrenheit dan mengonversinya ke Celsius menggunakan rumus:(fahrenheit - 32) * 5 / 9 - Konstruktor bernama
Temperature.freezing()yang membuat suhu pada titik beku (0 derajat Celsius)
display()yang mencetak:[celsius]C- Konstruktor biasa
main.dart: Impor class suhu dan buat tiga object suhu:- Satu menggunakan konstruktor biasa dengan
25.0 - Satu menggunakan
fromFahrenheitdengan98.6 - Satu menggunakan
freezing()
display()pada setiap suhu sesuai urutan di atas.- Satu menggunakan konstruktor biasa dengan
Format output yang diharapkan:
25.0C
37.0C
0.0CCoba sendiri
import 'temperature.dart';
void main() {
// TODO: Buat Temperature menggunakan konstruktor biasa dengan 25.0
// TODO: Buat Temperature menggunakan fromFahrenheit dengan 98.6
// TODO: Buat Temperature menggunakan freezing()
// TODO: Panggil display() pada setiap suhu secara berurutan
}
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