Melihat Saldo
Termasuk bagian Pemrograman Berorientasi Object dalam perjalanan Lua di Coddy. Pelajaran 22 dari 70.
Tantangan
MudahBank Digital-mu mulai terbentuk dengan baik! Akun dapat menerima setoran dan menangani penarikan dengan pemeriksaan dana yang tepat. Sekarang, mari tambahkan method getter untuk mengambil saldo, lalu gabungkan semuanya dalam skenario perbankan yang realistis.
Kamu akan melanjutkan pekerjaan pada file yang sudah ada:
Account.lua: Tambahkan method:getBalance()yang mengembalikan saldo saat ini. Ini mengikuti pola getter yang kamu pelajari sebelumnya: memberikan akses terkontrol ke data internal, bukan mengakses field secara langsung. Pertahankan semua fungsi yang sudah ada, yaitu constructor, method deposit, dan withdraw.main.lua: Buat akun dan jalankan serangkaian operasi perbankan untuk menunjukkan cara kerja setoran, penarikan, dan pemeriksaan saldo bersama-sama dalam skenario nyata.
Kamu akan menerima lima input:
- Jumlah setoran awal
- Jumlah penarikan pertama
- Jumlah setoran kedua
- Jumlah penarikan kedua
- Jumlah penarikan ketiga
Di file utama, buat akun dan lakukan operasi berikut secara berurutan:
- Setorkan jumlah awal, lalu cetak saldo menggunakan
:getBalance() - Tarik jumlah pertama, lalu cetak saldo
- Setorkan jumlah kedua, lalu cetak saldo
- Tarik jumlah kedua, lalu cetak saldo
- Coba lakukan penarikan ketiga, lalu cetak saldo
Ingat, penarikan yang gagal akan mencetak Insufficient funds sebelum kamu mencetak saldo.
Misalnya, jika inputnya adalah 200, 50, 100, 180, dan 100, outputnya seharusnya:
200
150
250
70
Insufficient funds
70Saldo akun dimulai dari 200, turun menjadi 150 setelah penarikan pertama, naik menjadi 250 setelah setoran berikutnya, turun menjadi 70 setelah penarikan 180, dan tetap 70 saat penarikan terakhir sebesar 100 gagal karena dana tidak mencukupi.
Coba sendiri
-- Muat module Account dengan require
local Account = require('Account')
-- Baca kelima input
local initialDeposit = tonumber(io.read())
local withdrawal1 = tonumber(io.read())
local deposit2 = tonumber(io.read())
local withdrawal2 = tonumber(io.read())
local withdrawal3 = tonumber(io.read())
-- Buat satu rekening
local account = Account:new()
-- Setorkan jumlah awal dan tampilkan saldo menggunakan :getBalance()
account:deposit(initialDeposit)
print(account:getBalance())
-- Coba lakukan penarikan pertama dan tampilkan saldo
account:withdraw(withdrawal1)
print(account:getBalance())
-- Setorkan jumlah kedua dan tampilkan saldo
account:deposit(deposit2)
print(account:getBalance())
-- Coba lakukan penarikan kedua dan tampilkan saldo
account:withdraw(withdrawal2)
print(account:getBalance())
-- Coba lakukan penarikan ketiga dan tampilkan saldo
account:withdraw(withdrawal3)
print(account:getBalance())
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