Penyiapan Proyek
Termasuk bagian Pemrograman Berorientasi Object dalam perjalanan Lua di Coddy. Pelajaran 19 dari 70.
Tantangan
MudahKita memulai proyek Digital Bank. Dalam pelajaran-pelajaran berikutnya, kamu akan membangun class Account yang dapat menerima setoran, menangani penarikan, mencetak dirinya sendiri, dan mentransfer uang ke akun lain. Semuanya dimulai dengan struktur file yang rapi dan sebuah constructor.
Dua file milikmu:
Account.lua: definisikan tabelAccount, aturAccount.__index = Accountagar instance dapat menemukan method-nya, lalu tulis constructor:new(). Constructor ini membuat tabel kosong, mengatur metatable-nya menjadiAccount, memberinyabalancebernilai0, lalu mengembalikannya. File ini diakhiri denganreturn Account.main.lua: muat module denganrequire('Account'), buat dua akun denganAccount:new(), cetak saldo masing-masing pada baris tersendiri, lalu cetaksavings == checkinguntuk menunjukkan bahwa kedua pemanggilan tersebut menghasilkan dua tabel yang berbeda.
Output yang diharapkan:
0
0
falseSetiap akun dimulai dengan saldo nol. Pada pelajaran berikutnya, kamu akan menambahkan method :deposit(amount) yang membuat saldo bertambah.
Coba sendiri
-- TODO: gunakan require untuk memuat module Account (file-nya adalah Account.lua)
local Account = nil
-- TODO: buat dua akun dengan Account:new()
-- TODO: cetak saldo setiap akun (satu per baris)
-- TODO: cetak apakah kedua akun adalah tabel yang sama (seharusnya tidak)
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