Powtórzenie – karta biblioteczna
Część sekcji Programowanie obiektowe ścieżki Ruby w Coddy. Lekcja 6 z 57.
Wyzwanie
ŚredniUzupełnij klasę LibraryCard. initialize(name, limit = 3) zapisuje imię i nazwisko oraz limit wypożyczeń, a na początku nie ma żadnych wypożyczonych tytułów. borrow(title) zwraca true i dodaje tytuł, chyba że karta osiągnęła limit lub ma już ten tytuł — w takim przypadku zwraca false. give_back(title) zwraca true, gdy tytuł został usunięty. to_s zwraca Ada: 2/3 (Dune, Emma) z tytułami w kolejności wypożyczenia albo Ada: 0/3, gdy nic nie jest wypożyczone.
Dostarczony kod odczytuje imię i nazwisko oraz limit (- oznacza wartość domyślną), a następnie polecenia +title lub -title. Dla każdego polecenia wypisuje ok lub no, a na końcu kartę.
Umieść swój kod w pliku library_card.rb. Plik main.rb zawiera dostarczony kod wejścia/wyjścia i nie można go edytować.
Spróbuj swoich sił
require_relative 'library_card'
# Dostarczony kod wejścia/wyjścia: pozostaw go bez zmian
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
Wszystkie lekcje w sekcji Programowanie obiektowe
1Klasy i obiekty
Praca z plikamiDefiniowanie klasZmienne instancjiMetody i selfto_s i inspectPowtórzenie – karta biblioteczna4Hermetyzacja
Metody prywatneMetody chronionePrywatne setteryOchrona stanuPowtórzenie – automat vendingowy7Polimorfizm i typowanie kacze
PolimorfizmTypowanie kaczeMetody abstrakcyjnecase i klasyPowtórzenie – metody płatności10Wzorce projektowe, część 2
Delegowanie z ForwardableWzorzec dekoratoraWzorzec budowniczegoWzorzec stanu2Metody dostępowe i self
Gettery i setteryWłasne setteryself w metodachTożsamość i równośćPowtórzenie – lista kontaktów5Dziedziczenie
PodklasyNadpisywanie metodWywoływanie superis_a? i przodkowiePowtórka – lista płac pracowników8Metody specjalne
Równość i hashMetody operatorówIndeksowanie i dodawanieWłasne kolekcjePowtórka – ułamki11Projekt: Zarządzanie biblioteką
Książki i czytelnicyWypożyczanie książekPoćwicz samodzielnie: Kompilator Ruby online