Penyiapan Proyek
Termasuk bagian Pemrograman Berorientasi Object dalam perjalanan Lua di Coddy. Pelajaran 55 dari 70.
Tantangan
MudahMari kita bangun fondasi untuk sistem Shape Manager! Proyek ini akan berkembang selama beberapa pelajaran berikutnya, jadi kita akan mulai dengan menyiapkan struktur file yang rapi dan class dasar Shape.
Kamu akan membuat dua file untuk mengatur kodemu:
Shape.lua: Definisikan class dasarShapemenggunakan pola prototype. Setiap bentuk memiliki atributname(seperti "Circle" atau "Rectangle"). Sertakan constructor:new(name)yang menerima nama bentuk, dan method:getName()yang mengembalikannya.main.lua: Buat class Shape-mu berfungsi dengan me-require module dan membuat instance bentuk. Baca nama bentuk dari input, buat Shape dengan nama tersebut, lalu cetak hasil pemanggilan:getName().
Class dasar ini akan menjadi induk bagi bentuk-bentuk tertentu seperti Rectangle dan Circle di pelajaran mendatang. Untuk saat ini, fokuslah memastikan struktur class sudah tepat: pengaturan __index, pola constructor, dan method getter.
Input: Satu baris yang berisi nama bentuk (sebuah string).
Output: Nama bentuk yang dikembalikan oleh :getName().
Coba sendiri
-- Muat module Shape dengan require
local Shape = require('Shape')
-- Baca nama bentuk dari input
local shapeName = io.read()
-- TODO: Buat instance Shape baru dengan nama yang diberikan
-- TODO: Cetak hasil pemanggilan :getName() pada bentukmu
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