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 55 trên 70.

challenge icon

Thử thách

Dễ

Hãy cùng xây dựng nền tảng cho hệ thống Shape Manager! Dự án này sẽ phát triển qua vài bài học tiếp theo, nên trước tiên, mình sẽ tạo cấu trúc tệp gọn gàng với một lớp cơ sở Shape.

Bạn sẽ tạo hai tệp để sắp xếp code:

  • Shape.lua: Định nghĩa lớp cơ sở Shape bằng mẫu prototype. Mỗi hình có thuộc tính name (chẳng hạn như "Circle" hoặc "Rectangle"). Thêm hàm khởi tạo :new(name) nhận tên hình và phương thức :getName() trả về tên đó.
  • main.lua: Tạo đối tượng Shape bằng cách yêu cầu module và tạo một instance hình. Đọc tên hình từ đầu vào, tạo một Shape với tên đó, rồi in ra kết quả gọi :getName().

Lớp cơ sở này sẽ làm lớp cha cho các hình cụ thể như Rectangle và Circle trong những bài học sắp tới. Trước mắt, hãy tập trung xây dựng đúng cấu trúc lớp: thiết lập __index, mẫu hàm khởi tạo và phương thức lấy giá trị.

Đầu vào: Một dòng duy nhất chứa tên hình (một chuỗi).

Đầu ra: Tên hình do :getName() trả về.

Tự làm thử

-- Nạp module Shape
local Shape = require('Shape')

-- Đọc tên hình từ đầu vào
local shapeName = io.read()

-- TODO: Tạo một instance Shape mới với tên đã cho

-- TODO: In ra kết quả khi gọi :getName() trên hình của bạn

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