Menu
CoddyTech

Thiết lập dự á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 19 trên 70.

challenge icon

Thử thách

Dễ

Chúng ta bắt đầu dự án Digital Bank. Trong các bài học tiếp theo, bạn sẽ xây dựng một lớp (class) Account có thể nhận tiền gửi, xử lý việc rút tiền, tự in thông tin và chuyển tiền sang các tài khoản khác. Mọi thứ bắt đầu với cấu trúc tệp gọn gàng và một hàm khởi tạo (constructor).

Hai tệp của bạn:

  • Account.lua: định nghĩa bảng Account, thiết lập Account.__index = Account để các instance tìm thấy phương thức của chúng, rồi viết hàm khởi tạo :new(). Hàm này tạo một bảng trống, đặt metatable của bảng thành Account, gán giá trị 0 cho balance rồi trả về bảng đó. Tệp kết thúc bằng return Account.
  • main.lua: yêu cầu module bằng require('Account'), tạo hai tài khoản bằng Account:new(), in số dư của mỗi tài khoản trên một dòng riêng, rồi in savings == checking để cho thấy hai lần gọi đã tạo ra hai bảng khác nhau.

Đầu ra dự kiến:

0
0
false

Mỗi tài khoản bắt đầu với số dư bằng không. Trong bài học tiếp theo, bạn sẽ thêm phương thức :deposit(amount) để tăng số dư.

Tự làm thử

-- TODO: dùng require để nạp module Account (tệp là Account.lua)
local Account = nil

-- TODO: tạo hai tài khoản bằng Account:new()

-- TODO: in ra số dư của từng tài khoản (mỗi tài khoản một dòng)

-- TODO: in ra hai tài khoản có phải là cùng một bảng hay không (chúng không nên là cùng một bảng)

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