Menu
CoddyTech

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.

challenge icon

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ào self.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:

  1. Số tiền gửi lần thứ nhất
  2. Số tiền gửi lần thứ hai
  3. 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
175

Hã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

Tự luyện tập: Trình biên dịch Lua online