Обзор проекта
Часть раздела Объектно-ориентированное программирование путешествия по GDScript на Coddy. Урок 56 из 65.
Задание
СреднеВ этом проекте ты создашь систему управления библиотекой за шесть шагов: библиотека, книги и пользователи, выдача книг, поиск, статистика и возврат книг. Каждый шаг начинается с файлов, полученных на предыдущем шаге.
На этом шаге создаётся класс Library в файле library.gd. В начальном коде уже объявлены три его свойства:
library_name: название библиотекиbooksиusers: два массиваArray[String], изначально пустых. Пока в них хранятся названия книг и имена пользователей.
Реализуй два метода:
- Конструктор
_init(library_name)сохраняет название в свойствеlibrary_name. _to_string()возвращаетNAME Library (books: N, users: M), гдеNиM— размеры двух массивов.
Предоставленный код считывает название библиотеки из первой строки, а затем — по одной команде в каждой строке: book TITLE и user NAME добавляют элементы в массивы, info выводит три свойства, а show выводит библиотеку. Для такого ввода:
Community
info
book Dune
user Ada
showвывод будет таким:
Name: Community
Books: 0
Users: 0
Community Library (books: 1, users: 1)Код нужно написать в файле library.gd. В main.gd находится предоставленный код ввода/вывода, который нельзя редактировать.
Попробуйте сами
extends Node
func _ready():
# Предоставленный код ввода-вывода: оставьте его без изменений
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()
Все уроки раздела Объектно-ориентированное программирование
1Основы ООП
Внешние файлыВведение в ООПКлассы и объектыКлючевое слово selfМетодыСвойстваКонструктор (_init)Повторение: простой калькулятор4Полиморфизм
Переопределение методов: повторениеУтиная типизацияАбстрактные классы и методыПроектирование интерфейсовПовторение — калькулятор фигур7Сигналы
Что такое сигнал?Объявление и отправкаПодключение к сигналамСигналы с аргументамиПовторение — система здоровья10Паттерны проектирования. Часть 2
Паттерн «Команда»Паттерн «Адаптер»Паттерн «Декоратор»Паттерн «Шаблонный метод»Паттерн «Состояние»Паттерн «Компоновщик»2Свойства классов
Переменные экземпляра и классаСтатические функцииСеттеры свойствГеттеры свойствПриватность по соглашениюПовторение — менеджер банковского счёта5Инкапсуляция
Открытые и закрытые членыПроверка данных с помощью сеттеровСокрытие информацииСвойства только для чтенияПовторение — система учета студентов8Продвинутые концепции ООП
Композиция и наследованиеВнутренние классыУзлы как компонентыRefCounted и NodeПеречисления в классах11Проект: Управление библиотекой
Обзор проектаКлассы книг и пользователей3Наследование
Основы наследованияКлючевое слово superПереопределение методовЦепочки наследованияПроверка типов с помощью isПовторение — иерархия сотрудников6Специальные методы
Введение в виртуальные методыМетод _to_stringПользовательские итераторыПовторение: пользовательский список9Паттерны проектирования. Часть 1
Введение в паттерны проектированияПаттерн «Одиночка»Паттерн «Фабрика»Паттерн «Наблюдатель»Паттерн «Стратегия»Потренируйтесь самостоятельно: Онлайн-компилятор GDScript