Wypożyczanie książek
Część sekcji Programowanie obiektowe ścieżki Kotlin w Coddy. Lekcja 51 z 57.
Wyzwanie
ŁatwyDodaj polecenie BORROW. Twój kod z poprzedniego kroku znajduje się już w pliku Library.kt; wszystkie polecenia mają nadal działać dokładnie tak jak wcześniej.
BORROW <name> <id>: sprawdź kolejno i zwróć odpowiedź dotyczącą pierwszego problemu:no member bo,no book 9,Dune is not available,ada has reached the limit(członkowie mogą mieć najwyżej 2 książki). W przeciwnym razie zarejestruj wypożyczenie zarówno przy książce, jak i przy członku, a następnie zwróć odpowiedźada borrowed Dune.
Dostarczony kod przekazuje każdy wiersz wejściowy do library.handle(line) i wyświetla każdą zwróconą odpowiedź w osobnym wierszu. Nazwy członków to pojedyncze słowa zapisane małymi literami, identyfikatory książek to liczby całkowite, a dane wejściowe zawierają tylko opisane dotąd polecenia. Każde inne polecenie zwraca unknown command.
Twój kod umieść w plikach Book.kt, Member.kt i Library.kt. Plik Main.kt zawiera dostarczony kod wejścia/wyjścia i nie można go edytować.
Spróbuj swoich sił
fun main() {
// Dostarczony kod wejścia/wyjścia: pozostaw go bez zmian
val input = generateSequence(::readLine).toList()
val library = Library()
for (line in input) {
for (reply in library.handle(line)) println(reply)
}
}
Wszystkie lekcje w sekcji Programowanie obiektowe
1Klasy i obiekty
Praca z plikamiDefiniowanie klasKonstruktory główneBloki init i walidacjaKonstruktory dodatkowePodsumowanie — karta biblioteczna4Dziedziczenie
Klasy otwarte i podklasyNadpisywanie składowychsuper i konstruktoryKlasy abstrakcyjnePodsumowanie – katalog pracowników7Klasy specjalne
Klasy danychKlasy wyliczenioweHierarchie zapieczętowaneequals, hashCode, toStringPodsumowanie — śledzenie zamówień10Wzorce projektowe, część 2
Delegowanie za pomocą byWzorzec dekoratoraWzorzec budowniczegoWzorzec stanu2Właściwości i hermetyzacja
Własne akcesoryModyfikatory widocznościPrywatne setterylazy i lateinitPowtórka – konto bankowe5Interfejsy
Deklarowanie interfejsówMetody domyślneWiele interfejsówInterfejsy jako typyPowtórzenie – metody płatności8Typy generyczne
Funkcje generyczneKlasy generyczneOgraniczenia typówKowariancja i kontrawariancja: in i outPodsumowanie — kolejka priorytetowa11Projekt: Zarządzanie biblioteką
Książki i czytelnicyWypożyczanie książekPoćwicz samodzielnie: Edytor online Kotlin