Phương thức nạp tiền
Thuộc phần Lập trình hướng đối tượng trong hành trình Lua của Coddy. Bài học 20 trên 70.
Thử thách
DễBây giờ chúng ta bắt đầu dự án Ngân hàng số. Đã đến lúc bổ sung chức năng cho hệ thống mới của bạn! Giờ đây, tài khoản có thể được tạo với số dư ban đầu là 0, hãy cho phép chúng nhận tiền gửi.
Dựa trên lớp Account hiện có, bạn sẽ thêm phương thức :deposit(amount) để tăng số dư tài khoản theo số tiền được chỉ định. Đây là một thao tác cơ bản trong ngân hàng: tiền được gửi vào và số dư tăng lên!
Hai tệp của bạn:
Account.lua: Mở rộng lớp Account bằng cách thêm phương thức:deposit(amount). Phương thức này cần cộng số tiền đã cho vàoself.balance. Giữ nguyên mọi thứ từ bài học trước, gồm cấu trúc lớp và hàm khởi tạo:new().main.lua: Yêu cầu module Account, tạo một tài khoản, thực hiện một vài lần gửi tiền và hiển thị số dư thay đổi như thế nào.
Bạn sẽ nhận ba đầu vào:
- Số tiền gửi lần thứ nhất
- Số tiền gửi lần thứ hai
- Số tiền gửi lần thứ ba
Trong tệp chính, hãy tạo một tài khoản duy nhất và thực hiện ba lần gửi tiền theo thứ tự. Sau mỗi lần gửi tiền, hãy in số dư hiện tại trên một dòng mới.
Ví dụ: nếu các đầu vào là 100, 50 và 25, đầu ra sẽ là:
100
150
175Hãy chú ý cách mỗi lần gửi tiền cộng dồn vào số dư trước đó: tài khoản bắt đầu từ 0, sau lần gửi thứ nhất tăng lên 100, sau lần thứ hai lên 150 và sau lần thứ ba lên 175. Phương thức :deposit() giúp số dư tích lũy như vậy!
Tự làm thử
-- Nạp module Account
local Account = require('Account')
-- Đọc ba khoản tiền gửi
local deposit1 = tonumber(io.read())
local deposit2 = tonumber(io.read())
local deposit3 = tonumber(io.read())
-- Tạo một tài khoản
local account = Account:new()
-- Gửi tiền ba lần và in ra số dư sau mỗi lần
-- TODO: gửi deposit1 và in ra account.balance
-- TODO: gửi deposit2 và in ra account.balance
-- TODO: gửi deposit3 và in ra account.balance
Tất cả bài học trong Lập trình hướng đối tượng
1Khái niệm “self”
Bảng với hàm“self” tường minhCú pháp dấu hai chấmDấu chấm và dấu hai chấmÔn tập: Điểm chuyển động4Dự án: Ngân hàng số
Thiết lập dự ánPhương thức nạp tiền2Mẫu Prototype cho lớp
Khái niệm PrototypeLiên kết bằng __indexHàm khởi tạo :new()Khởi tạo thuộc tínhCác instance độc lậpÔn tập: Nhà máy ô tô5Nạp chồng toán tử trong OOP
Cộng các đối tượngTrừ các đối tượngNối các đối tượngSo sánh các đối tượng (<, >)Ôn tập: phép tính với ví tiền8Đóng gói
Quy ước đặt tênClosure để bảo mậtTruy cập qua closureBảng chỉ đọcLogic kiểm tra hợp lệTổng kết: Két an toàn11Mẫu thiết kế (cơ bản)
Hàm tạo đối tượngBảng SingletonMẫu IteratorObserver (Listener)Ôn tập: Factory Logger3Trạng thái và hành vi của đối tượng
Biến instancePhương thức getterPhương thức setterThuộc tính tính toánĐịnh dạng chuỗiKiểm tra tính bằng nhauÔn tập: điểm số học sinh6Cơ bản về kế thừa
Thiết lập kế thừaKế thừa phương thứcMở rộng hàm khởi tạoThêm phương thức cho lớp conDùng chung và riêngÔn tập: hệ phân cấp hình dạngTự luyện tập: Trình biên dịch Lua online