Descripción general del proyecto
Parte de la sección Programación orientada a objetos del Journey de GDScript de Coddy. Lección 56 de 65.
Desafío
IntermedioEn este proyecto crearás un Sistema de gestión de bibliotecas en seis pasos: una biblioteca, libros y usuarios, préstamos, búsqueda, estadísticas y devoluciones. Cada paso comienza con los archivos del paso anterior.
En este paso crearás la clase Library en library.gd. El código inicial ya declara sus tres propiedades:
library_name: el nombre de la bibliotecabooksyusers: dosArray[String]que empiezan vacíos. Por ahora contienen títulos y nombres de usuarios.
Completa los dos métodos:
- El constructor
_init(library_name)almacena el nombre en la propiedadlibrary_name. _to_string()devuelveNAME Library (books: N, users: M), dondeNyMson los tamaños de los dos arreglos.
El código proporcionado lee el nombre de la biblioteca de la primera línea y, después, un comando por línea: book TITLE y user NAME agregan elementos a los arreglos, info imprime las tres propiedades y show imprime la biblioteca. Para esta entrada:
Community
info
book Dune
user Ada
showla salida es:
Name: Community
Books: 0
Users: 0
Community Library (books: 1, users: 1)Tu código va en library.gd. main.gd contiene el código de entrada y salida proporcionado y no se puede editar.
Pruébalo tú mismo
extends Node
func _ready():
# Código de entrada/salida proporcionado: mantenlo tal como está
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()
Todas las lecciones de Programación orientada a objetos
1Fundamentos de la programación orientada a objetos
Archivos externosIntroducción a la programación orientada a objetosClases vs. objetosLa palabra clave selfMétodosPropiedadesConstructor (_init)Repaso: calculadora sencilla4Polimorfismo
Repaso de la sobrescritura de métodosTipado patoClases y métodos abstractosDiseño de interfacesRepaso: calculadora de formas7Señales
¿Qué es una señal?Declarar y emitirConectarse a las señalesSeñales con argumentosRepaso: sistema de salud10Patrones de diseño, parte 2
Patrón CommandPatrón AdapterPatrón DecoratorPatrón Template MethodPatrón StatePatrón Composite2Propiedades de clase
Variables de instancia y estáticasFunciones estáticasMétodos setter de propiedadesMétodos getter de propiedadesPrivado por convenciónRepaso: administrador de cuentas bancarias5Encapsulación
Miembros públicos y privadosValidación con settersOcultación de informaciónPropiedades de solo lecturaRepaso: sistema de registros de estudiantes8Conceptos avanzados de POO
Composición frente a herenciaClases internasNodos como componentesRefCounted frente a NodeEnums en clases11Proyecto: Gestión de bibliotecas
Descripción general del proyectoClases de libros y usuarios3Herencia
Herencia básicaLa palabra clave superSobrescritura de métodosCadenas de herenciaComprobaciones de tipo con isRepaso: jerarquía de empleados6Métodos especiales
Introducción a los métodos virtualesEl método _to_stringIteradores personalizadosRepaso: lista personalizada9Patrones de diseño, parte 1
Introducción a los patrones de diseñoPatrón SingletonPatrón FactoryPatrón ObserverPatrón StrategyPractica por tu cuenta: Compilador de GDScript online