Ôn tập: thẻ thư viện
Thuộc phần Lập trình hướng đối tượng trong hành trình Ruby của Coddy. Bài học 6 trên 57.
Thử thách
Trung bìnhHoàn thiện lớp LibraryCard. initialize(name, limit = 3) lưu tên và giới hạn mượn, đồng thời bắt đầu với danh sách chưa mượn tên sách nào. borrow(title) trả về true và thêm tên sách, trừ khi thẻ đã đạt giới hạn hoặc đã có tên sách đó, khi ấy phương thức trả về false. give_back(title) trả về true khi xóa tên sách. to_s trả về Ada: 2/3 (Dune, Emma) cùng các tên sách theo thứ tự mượn, hoặc Ada: 0/3 khi chưa mượn sách nào.
Code được cung cấp đọc tên và giới hạn (- để dùng giá trị mặc định), sau đó đọc các lệnh +title hoặc -title. Code in ra ok hoặc no cho mỗi lệnh, rồi in thẻ.
Code của bạn nằm trong library_card.rb. main.rb chứa code đầu vào/đầu ra được cung cấp và bạn không thể chỉnh sửa tệp này.
Tự làm thử
require_relative 'library_card'
# Đoạn code đầu vào/đầu ra đã cung cấp: giữ nguyên
input = []
while (line = gets)
input << line.chomp
end
card = input[1] == "-" ? LibraryCard.new(input[0]) : LibraryCard.new(input[0], input[1].to_i)
input.drop(2).each do |cmd|
title = cmd[1..]
done = cmd.start_with?("+") ? card.borrow(title) : card.give_back(title)
puts done ? "ok" : "no"
end
puts card
Tất cả bài học trong Lập trình hướng đối tượng
1Lớp và đối tượng
Làm việc với tệpĐịnh nghĩa lớpBiến instancePhương thức và selfto_s và inspectÔn tập: thẻ thư viện4Tính đóng gói
Phương thức riêng tưPhương thức được bảo vệPhương thức thiết lập riêng tưBảo vệ trạng tháiÔn tập: máy bán hàng tự động7Tính đa hình và duck typing
Tính đa hìnhDuck typingPhương thức trừu tượngcase và lớpÔn tập: phương thức thanh toán2Phương thức truy cập và self
Phương thức đọc và ghiPhương thức gán tùy chỉnhself trong phương thứcĐịnh danh và tính bằng nhauÔn tập: Danh sách liên hệTự luyện tập: Trình biên dịch Ruby online