Resumen - Calificación del Estudiante
Parte de la sección Programación Orientada a Objetos del Journey de Lua de Coddy — lección 18 de 70.
Desafío
Fácil¡Vamos a construir una clase Student completa que reúna todo lo que has aprendido en este capítulo: variables de instancia, getters, setters y propiedades calculadas, todo trabajando en conjunto!
Organizarás tu código en dos archivos:
Student.lua: Define tu claseStudentcon el patrón de prototipo estándar. Cada estudiante debe almacenar unnamey unagrade. Tu clase necesita:- Un constructor
:new(name, grade) - Un getter
:getName()que devuelva el nombre del estudiante - Un getter
:getGrade()que devuelva la calificación actual - Un setter
:setGrade(newGrade)que actualice la calificación - Un método
:hasPassed(threshold)que devuelvatruesi la calificación del estudiante es mayor o igual al umbral (threshold), yfalseen caso contrario
- Un constructor
main.lua: Requiere tu módulo Student y demuestra toda la funcionalidad creando un estudiante, verificando su estado, actualizando su calificación y verificando los cambios.
Recibirás cuatro entradas:
- Nombre del estudiante
- Calificación inicial
- Umbral de aprobación para verificar
- Nueva calificación para establecer
En tu archivo principal, crea un estudiante con el nombre y la calificación inicial dados, luego imprime lo siguiente en líneas separadas:
- El nombre del estudiante
- La calificación inicial del estudiante
- Si el estudiante aprobó con el umbral dado (imprime
trueofalse) - La calificación del estudiante después de actualizarla con la nueva calificación
- Si el estudiante aprobó con el mismo umbral después de la actualización de la calificación
Por ejemplo, si las entradas son Emma, 55, 60 y 75, la salida debería ser:
Emma
55
false
75
trueEmma inicialmente tenía una calificación de 55, que no cumplía con el umbral de aprobación de 60. Después de actualizar su calificación a 75, ¡ahora aprueba!
Pruébalo tú mismo
-- Requerir el módulo Student
local Student = require('Student')
-- Leer entradas
local name = io.read()
local initialGrade = tonumber(io.read())
local threshold = tonumber(io.read())
local newGrade = tonumber(io.read())
-- TODO: Crear un estudiante con el nombre y la calificación inicial dados
-- TODO: Imprimir el nombre del estudiante usando el getter
-- TODO: Imprimir la calificación inicial del estudiante usando el getter
-- TODO: Verificar e imprimir si el estudiante aprobó con el umbral dado
-- TODO: Actualizar la calificación del estudiante usando el setter
-- TODO: Imprimir la nueva calificación del estudiante
-- TODO: Verificar e imprimir si el estudiante aprobó después de la actualización de la calificación
Todas las lecciones de Programación Orientada a Objetos
1El concepto de 'self'
Tablas con funciones'self' explícitoLa sintaxis de dos puntosPunto vs. dos puntosResumen - Punto en movimiento4Proyecto: Banco Digital
Configuración del proyectoMétodo de depósito2Patrón de prototipo de clase
El concepto de prototipoVinculación con __indexEl constructor :new()Inicialización de atributosInstancias independientesResumen - Fábrica de coches5Sobrecarga de operadores en POO
Sumar objetosRestar objetosConcatenar objetosComparar objetos (<, >)Resumen - Matemáticas de la billetera8Encapsulamiento
Convenciones de nomenclaturaClosures para privacidadAcceso mediante ClosuresTablas de solo lecturaLógica de validaciónResumen - Bóveda segura11Patrones de diseño (Lite)
Funciones FactoryTabla SingletonPatrón IteradorObserver (Listener)Resumen - Logger Factory3Estado y Comportamiento de los Objetos
Variables de InstanciaMétodos GetterMétodos SetterPropiedades CalculadasFormateo de StringsComprobaciones de IgualdadResumen - Calificación del Estudiante6Fundamentos de la herencia
Configuración de la herenciaHerencia de métodosExtender el constructorAñadir métodos hijosCompartido vs. ÚnicoResumen: Jerarquía de formas