Przegląd projektu
Część sekcji Programowanie obiektowe ścieżki GDScript w Coddy. Lekcja 56 z 65.
Wyzwanie
ŚredniW tym projekcie zbudujesz system zarządzania biblioteką w sześciu krokach: bibliotekę, książki i użytkowników, wypożyczanie, wyszukiwanie, statystyki i zwroty. Każdy krok rozpoczyna się od plików z poprzedniego kroku.
W tym kroku utworzysz klasę Library w pliku library.gd. Kod początkowy deklaruje już jej trzy właściwości:
library_name: nazwa bibliotekibooksiusers: dwie tabliceArray[String], które początkowo są puste. Na razie przechowują tytuły i nazwy użytkowników.
Uzupełnij dwie metody:
- Konstruktor
_init(library_name)zapisuje nazwę we właściwościlibrary_name. _to_string()zwracaNAME Library (books: N, users: M), gdzieNiMto rozmiary obu tablic.
Dostarczony kod odczytuje nazwę biblioteki z pierwszego wiersza, a następnie po jednym poleceniu w każdym wierszu: book TITLE i user NAME dodają elementy do tablic, info wyświetla trzy właściwości, a show wyświetla bibliotekę. Dla tego wejścia:
Community
info
book Dune
user Ada
showwyjście wygląda tak:
Name: Community
Books: 0
Users: 0
Community Library (books: 1, users: 1)Twój kod umieść w pliku library.gd. Plik main.gd zawiera dostarczony kod wejścia/wyjścia i nie można go edytować.
Spróbuj swoich sił
extends Node
func _ready():
# Dostarczony kod wejścia/wyjścia: pozostaw go bez zmian
var library := Library.new(OS.read_string_from_stdin())
var line := OS.read_string_from_stdin()
while line != "":
var parts := line.split(" ", true, 1)
match parts[0]:
"book":
library.books.append(parts[1])
"user":
library.users.append(parts[1])
"info":
print("Name: ", library.library_name)
print("Books: ", library.books.size())
print("Users: ", library.users.size())
"show":
print(library)
line = OS.read_string_from_stdin()
Wszystkie lekcje w sekcji Programowanie obiektowe
1Podstawy programowania obiektowego
Pliki zewnętrzneWprowadzenie do programowania obiektowegoKlasy a obiektySłowo kluczowe selfMetodyWłaściwościKonstruktor (_init)Powtórka – prosty kalkulator4Polimorfizm
Ponowne omówienie przesłaniania metodDuck typingKlasy i metody abstrakcyjneProjektowanie interfejsówPowtórzenie – kalkulator kształtów7Sygnały
Czym jest sygnał?Deklarowanie i emitowanieŁączenie z sygnałamiSygnały z argumentamiPodsumowanie — system zdrowia10Wzorce projektowe, część 2
Wzorzec poleceniaWzorzec adapteraWzorzec dekoratoraWzorzec metody szablonowejWzorzec stanuWzorzec kompozytu2Właściwości klas
Zmienne instancji a zmienne statyczneFunkcje statyczneSettery właściwościGettery właściwościPrywatne z konwencjiPodsumowanie — menedżer kont bankowych5Enkapsulacja
Elementy publiczne i prywatneWalidacja za pomocą setterówUkrywanie informacjiWłaściwości tylko do odczytuPodsumowanie – system ewidencji uczniów8Zaawansowane koncepcje OOP
Kompozycja a dziedziczenieKlasy wewnętrzneWęzły jako komponentyRefCounted a NodeTypy wyliczeniowe w klasach11Projekt: Zarządzanie biblioteką
Przegląd projektuKlasy książki i użytkownika3Dziedziczenie
Podstawy dziedziczeniaSłowo kluczowe superNadpisywanie metodŁańcuchy dziedziczeniaSprawdzanie typów za pomocą isPodsumowanie – hierarchia pracowników6Metody specjalne
Wprowadzenie do metod wirtualnychMetoda _to_stringWłasne iteratoryPodsumowanie — własna lista9Wzorce projektowe — część 1
Wprowadzenie do wzorców projektowychWzorzec SingletonWzorzec FactoryWzorzec ObserverWzorzec StrategyPoćwicz samodzielnie: Kompilator GDScript online