Riepilogo - Voto dello studente
Fa parte della sezione Programmazione orientata agli oggetti del percorso Lua di Coddy. Lezione 18 di 70.
Sfida
FacileCostruiamo una classe Student completa che riunisca tutto ciò che hai imparato in questo capitolo: variabili di istanza, getter, setter e proprietà calcolate, tutti insieme!
Organizzerai il codice in due file:
Student.lua: definisci la tua classeStudentcon il consueto schema prototype. Ogni studente deve memorizzare unnamee ungrade. La tua classe deve avere:- Un costruttore
:new(name, grade) - Un getter
:getName()che restituisce il nome dello studente - Un getter
:getGrade()che restituisce il voto corrente - Un setter
:setGrade(newGrade)che aggiorna il voto - Un metodo
:hasPassed(threshold)che restituiscetruese il voto dello studente è maggiore o uguale alla soglia,falsealtrimenti
- Un costruttore
main.lua: importa il tuo modulo Student e dimostra tutte le funzionalità creando uno studente, verificandone lo stato, aggiornandone il voto e controllando le modifiche.
Riceverai quattro input:
- Il nome dello studente
- Il voto iniziale
- La soglia di sufficienza da verificare
- Il nuovo voto da impostare
Nel file principale, crea uno studente con il nome e il voto iniziale forniti, poi stampa quanto segue su righe separate:
- Il nome dello studente
- Il voto iniziale dello studente
- Se lo studente ha superato la soglia indicata (stampa
trueofalse) - Il voto dello studente dopo averlo aggiornato con il nuovo voto
- Se lo studente ha superato la stessa soglia dopo l'aggiornamento del voto
Per esempio, se gli input sono Emma, 55, 60 e 75, l'output dovrebbe essere:
Emma
55
false
75
trueEmma inizialmente aveva un voto di 55, che non raggiungeva la soglia di sufficienza di 60. Dopo aver aggiornato il suo voto a 75, ora supera la soglia!
Provalo tu
-- Carica il modulo Student
local Student = require('Student')
-- Leggi gli input
local name = io.read()
local initialGrade = tonumber(io.read())
local threshold = tonumber(io.read())
local newGrade = tonumber(io.read())
-- TODO: Crea uno studente con il nome e il voto iniziale forniti
-- TODO: Stampa il nome dello studente usando il getter
-- TODO: Stampa il voto iniziale dello studente usando il getter
-- TODO: Verifica e stampa se lo studente ha superato la prova con la soglia fornita
-- TODO: Aggiorna il voto dello studente usando il setter
-- TODO: Stampa il nuovo voto dello studente
-- TODO: Verifica e stampa se lo studente ha superato la prova dopo l'aggiornamento del voto
Tutte le lezioni di Programmazione orientata agli oggetti
1Il concetto di «self»
Tabelle con funzioni«self» esplicitoLa sintassi dei due puntiPunto o due puntiRiepilogo - Spostare il punto4Progetto: Banca digitale
Configurazione del progettoMetodo di deposito2Schema del prototipo di classe
Il concetto di prototipoCollegare con __indexIl costruttore :new()Inizializzare gli attributiIstanze indipendentiRiepilogo - Fabbrica di auto5Sovraccarico degli operatori nella OOP
Sommare oggettiSottrarre oggettiConcatenare oggettiConfrontare oggetti (<, >)Ripasso - Calcoli con il portafoglio8Incapsulamento
Convenzioni di denominazioneClosure per la privacyAccesso tramite closureTabelle di sola letturaLogica di convalidaRiepilogo - Cassaforte sicura11Modelli di progettazione (base)
Funzioni factoryTabella singletonPattern IteratorObserver (listener)Riepilogo - Factory per logger3Stato e comportamento degli oggetti
Variabili di istanzaMetodi getterMetodi setterProprietà calcolateFormattazione delle stringheControlli di uguaglianzaRiepilogo - Voto dello studente6Fondamenti dell'ereditarietà
Configurare l'ereditarietàEreditare i metodiEstendere il costruttoreAggiungere metodi alla classe figliaCondiviso vs specificoRiepilogo - Gerarchia delle formeEsercitati da solo: Compilatore Lua online