Rangkuman: Pabrik Mobil
Termasuk bagian Pemrograman Berorientasi Object dalam perjalanan Lua di Coddy. Pelajaran 11 dari 70.
Tantangan
MudahMari buat Car class lengkap yang merangkum semua yang telah kamu pelajari di bab ini! Kamu akan membuat sistem pabrik mobil, dengan setiap mobil memiliki model dan warna sendiri, sekaligus menunjukkan pengorganisasian module yang tepat dan instance yang independen.
Kamu akan mengatur kodemu dalam dua file:
Car.lua: DefinisikanCarclass dengan mengikuti pola prototype standar. Class-mu memerlukan constructor:new(model, color)yang membuat mobil dengan atributnya sendiri. Sertakan method:describe()agar setiap mobil dapat memperkenalkan dirinya.main.lua: Gunakan require untuk module Car-mu dan buat beberapa instance mobil untuk menunjukkan bahwa setiap mobil mempertahankan state independennya sendiri.
Method :describe()-mu harus mencetak dengan format persis berikut:
A [color] [model]Kamu akan menerima empat input:
- Model untuk mobil pertama
- Warna untuk mobil pertama
- Model untuk mobil kedua
- Warna untuk mobil kedua
Di file utama, buat dua mobil menggunakan input yang diberikan dan minta masing-masing menjelaskan dirinya pada baris terpisah.
Misalnya, jika inputnya adalah Sedan, blue, Truck, dan red, outputnya seharusnya:
A blue Sedan
A red TruckSetiap mobil harus menyimpan model dan warnanya sendiri, membuktikan bahwa class-mu membuat instance yang benar-benar independen.
Coba sendiri
-- Muat module Car dengan require
local Car = require('Car')
-- Baca input
local model1 = io.read()
local color1 = io.read()
local model2 = io.read()
local color2 = io.read()
-- TODO: Buat dua instance mobil menggunakan Car:new()
-- TODO: Panggil :describe() pada setiap mobil untuk mencetak deskripsinya
Semua pelajaran di Pemrograman Berorientasi Object
1Konsep "Self"
Tabel dengan Fungsi'self' EksplisitSintaks Titik DuaTitik vs Titik DuaRangkuman, Titik Bergerak4Proyek: Bank Digital
Penyiapan Proyekmethod Setoran7Polimorfisme & Overriding
Menimpa methodMemanggil method indukDuck TypingAntarmuka UmumMemeriksa TipeRingkasan: Peran Karyawan10Proyek: Pengelola Bentuk
Penyiapan Proyekclass Rectangleclass Circlemethod KelilingKumpulan BentukLuas TotalSaring Bentuk2Pola Prototype untuk class
Konsep PrototypeMenghubungkan dengan __indexKonstruktor :new()Menginisialisasi AtributInstans yang MandiriRangkuman: Pabrik Mobil5Pembebanan Operator dalam OOP
Menjumlahkan ObjekMengurangkan ObjekMenggabungkan ObjekMembandingkan Objek (<, >)Ulasan: Aritmetika Dompet8Enkapsulasi
Konvensi PenamaanClosure untuk PrivasiAkses melalui ClosureTabel Hanya-BacaLogika ValidasiRangkuman: Brankas Aman11Pola Desain (Ringan)
Fungsi FactoryTabel SingletonPola IteratorObserver (Listener)Rangkuman, Factory Logger3State dan Behavior pada object
Variabel InstansGetter methodSetter methodProperty TerhitungMemformat stringPemeriksaan KesetaraanRangkuman: Nilai Siswa6Dasar-Dasar Pewarisan
Menyiapkan PewarisanMewarisi methodMemperluas KonstruktorMenambahkan method untuk ChildSama vs UnikRangkuman: Hierarki BentukLatihan sendiri: Compiler Lua online