Định nghĩa thú cưng
Thuộc phần Lập trình hướng đối tượng trong hành trình Rust của Coddy. Bài học 19 trên 61.
Thử thách
DễChào mừng bạn đến với dự án thú cưng ảo! Trong vài bài học tiếp theo, bạn sẽ xây dựng một mô phỏng thú cưng hoàn chỉnh, kết hợp mọi thứ bạn đã học về struct, phương thức, module và tính đóng gói.
Bắt đầu xây dựng thú cưng ảo nào! Ở bước đầu tiên này, bạn sẽ tạo nền tảng bằng cách tạo một struct Pet trong module riêng, với tính đóng gói phù hợp.
Bạn sẽ sắp xếp code trong hai tệp:
pet.rs: Định nghĩa structPetvới ba trường riêng tư:name(String),energy(u32) vàhunger(u32). Triển khai hàm liên kết công khainew, nhận một tên và tạo thú cưng cóenergyđược đặt thành100vàhungerđược đặt thành0. Đồng thời thêm phương thức getter công khainame, trả về tham chiếu đến tên của thú cưng.main.rs: Khai báo modulepetvà đưaPetvào phạm vi. Đọc tên từ đầu vào, tạo thú cưng mới với tên đó và in ra lời chào mừng.
Lời chào mừng của bạn cần theo định dạng này:
Welcome, {name}!Ví dụ, nếu đầu vào là Buddy, đầu ra sẽ là:
Welcome, Buddy!Hãy nhớ rằng struct cần được khai báo công khai để có thể dùng từ main.rs, nhưng các trường phải luôn riêng tư: chỉ có thể truy cập thông qua những phương thức bạn cung cấp.
Tự làm thử
mod pet;
use pet::Pet;
fn main() {
let mut name = String::new();
std::io::stdin().read_line(&mut name).expect("Failed to read line");
let name = name.trim().to_string();
// TODO: Tạo một Pet mới với tên đã cho
// TODO: In lời chào bằng phương thức lấy tên của thú cưng
// Định dạng: "Welcome, {name}!"
}
Tất cả bài học trong Lập trình hướng đối tượng
1Phương thức và hành vi
Nhập môn khối triển khaiTham số selfPhương thức có thể thay đổiHàm liên kếtNhiều khối triển khaiNối chuỗi phương thứcÔn tập: thao tác với hình chữ nhật4Dự án: Thú cưng ảo
Định nghĩa thú cưngCho thú cưng ăn7Các trait tiêu chuẩn
Trait DebugTrait DisplayClone và CopyCác trait so sánh bằngÔn tập: Điểm có thể in ra2Tính đóng gói và module
Kiến thức cơ bản về moduleTừ khóa publicTrường riêng tưHàm lấy giá trịHàm thiết lập giá trịÔn tập: tủ khóa an toàn5Kiểu tổng quát
Cấu trúc tổng quátPhương thức tổng quátNhiều kiểu tổng quátHàm tổng quátÔn tập: điểm tọa độTự luyện tập: Trình biên dịch Rust online