Info Akun
Termasuk bagian Pemrograman Berorientasi Object dalam perjalanan Lua di Coddy. Pelajaran 23 dari 70.
Tantangan
MudahDigital Bank-mu semakin profesional! Sekarang, mari buat akunmu menampilkan dirinya dengan rapi saat dicetak. Dengan menambahkan metamethod __tostring, kamu bisa mengatur dengan tepat bagaimana sebuah akun ditampilkan: menampilkan ID akun dan saldo saat ini dalam format yang bersih dan mudah dibaca.
Kamu akan melanjutkan dengan mengembangkan file yang sudah ada:
Account.lua: Perluas class Account-mu dengan dua fitur baru:- Ubah constructor
:new()agar menerima parameteridyang mengidentifikasi setiap akun - Tambahkan metamethod
__tostringyang mengembalikan string berformat untuk menampilkan informasi akun
- Ubah constructor
main.lua: Buat akun dengan ID dan tunjukkan cara akun tersebut ditampilkan saat dicetak.
Method __tostring harus mengembalikan string dengan format persis seperti ini:
Account [ID]: Balance = BALANCEDi sini, ID adalah ID akun dan BALANCE adalah saldo saat ini.
Kamu akan menerima empat input:
- ID akun pertama
- Jumlah setoran akun pertama
- ID akun kedua
- Jumlah setoran akun kedua
Di file utama, buat dua akun dengan ID yang diberikan, setorkan jumlah yang sesuai ke masing-masing akun, lalu cetak setiap akun secara langsung menggunakan print(). Metamethod __tostring akan dipanggil secara otomatis saat kamu mencetak object akun.
Contohnya, jika inputnya adalah 1001, 500, 1002, dan 750, output-nya seharusnya:
Account [1001]: Balance = 500
Account [1002]: Balance = 750Sekarang setiap akun memiliki identitas unik dan dapat menjelaskan dirinya dengan jelas: pengalaman perbankan yang jauh lebih profesional!
Coba sendiri
-- Muat module Account dengan require
local Account = require('Account')
-- Baca keempat input
local id1 = io.read()
local deposit1 = tonumber(io.read())
local id2 = io.read()
local deposit2 = tonumber(io.read())
-- Buat dua akun dengan ID
local account1 = Account:new(id1)
local account2 = Account:new(id2)
-- Setorkan jumlah masing-masing
account1:deposit(deposit1)
account2:deposit(deposit2)
-- Cetak setiap akun (menggunakan __tostring)
print(account1)
print(account2)
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