Rückblick – Bibliotheksausweis
Teil des Abschnitts Objektorientierte Programmierung der Swift-Journey von Coddy. Lektion 6 von 57.
Aufgabe
MittelVervollständige die Klasse LibraryCard. Ihr Initialisierer erhält den Mitgliedsnamen name und ein limit (Standardwert 3) und beginnt ohne ausgeliehene Bücher. borrow(_:) gibt true zurück und fügt den Titel hinzu, sofern die Karte ihr Limit nicht erreicht hat und diesen Titel nicht bereits enthält. giveBack(_:) gibt true zurück, wenn der Titel entfernt wurde. status() gibt Ada: 2/3 (Dune, Emma) mit den Titeln in der Reihenfolge ihrer Ausleihe zurück oder Ada: 0/3, wenn nichts ausgeliehen ist.
Der bereitgestellte Code liest den Namen, das Limit (oder eine leere Zeile für den Standardwert) und anschließend Befehle +title oder -title. Für jeden Befehl gibt er ok oder no aus und schließlich status().
Dein Code gehört in LibraryCard.swift. main.swift enthält den bereitgestellten Eingabe-/Ausgabecode und darf nicht bearbeitet werden.
Probier es selbst
// Gelieferter Ein-/Ausgabecode: belasse ihn wie er ist
var input: [String] = []
while let line = readLine() { input.append(line) }
let card = input[1].isEmpty ? LibraryCard(name: input[0]) : LibraryCard(name: input[0], limit: Int(input[1])!)
for cmd in input.dropFirst(2) {
let title = String(cmd.dropFirst())
let done = cmd.hasPrefix("+") ? card.borrow(title) : card.giveBack(title)
print(done ? "ok" : "no")
}
print(card.status())
Alle Lektionen in Objektorientierte Programmierung
1Klassen und Objekte
Arbeiten mit DateienKlassen definierenMethoden und selfInitialisiererKlassen sind ReferenzenRückblick – Bibliotheksausweis4Kapselung
ZugriffskontrolleVon außen schreibgeschütztZustand schützenFehlschlagende InitialisiererRückblick – Bankkonto7Polymorphismus und Generika
PolymorphismusTypumwandlungGenerische FunktionenGenerische TypenZusammenfassung – Shape-Rechner2Strukturen und Werttypen
StrukturenWertsemantikVerändernde MethodenStruktur oder KlasseZusammenfassung – Inventarelement5Vererbung
UnterklassenMethoden überschreibenInitialisierer und superfinal und HierarchienRückblick – Mitarbeiterhierarchie8Standardprotokolle
CustomStringConvertibleEquatableComparableHashableRückblick – Benutzerdefiniertes Sortieren11Projekt: Bibliotheksverwaltung
Bücher und MitgliederBücher ausleihenÜbe selbstständig: Swift-Playground