Resumen - Calificación del Estudiante
Parte de la sección Object Oriented Programming 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 Object Oriented Programming
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