Zusammenfassung – Studentennote
Teil des Abschnitts Objektorientierte Programmierung der Lua-Journey von Coddy. Lektion 18 von 70.
Aufgabe
EinfachLass uns eine vollständige Student-Klasse erstellen, die alles zusammenführt, was du in diesem Kapitel gelernt hast: Instanzvariablen, Getter, Setter und berechnete Eigenschaften, die alle zusammenarbeiten!
Du wirst deinen Code auf zwei Dateien verteilen:
Student.lua: Definiere deineStudent-Klasse mit dem standardmäßigen Prototyp-Muster. Jeder Student sollte einennameund einegradespeichern. Deine Klasse benötigt:- Einen
:new(name, grade)-Konstruktor - Einen
:getName()-Getter, der den Namen des Studenten zurückgibt - Einen
:getGrade()-Getter, der die aktuelle Note zurückgibt - Einen
:setGrade(newGrade)-Setter, der die Note aktualisiert - Eine
:hasPassed(threshold)-Methode, dietruezurückgibt, wenn die Note des Studenten größer oder gleich dem Schwellenwert ist, andernfallsfalse
- Einen
main.lua: Binde dein Student-Modul ein und demonstriere alle Funktionen, indem du einen Studenten erstellst, seinen Status überprüfst, seine Note aktualisierst und die Änderungen bestätigst.
Du erhältst vier Eingaben:
- Name des Studenten
- Anfangsnote
- Zu überprüfender Bestehensgrenzwert
- Neue zu setzende Note
Erstelle in deiner Hauptdatei einen Studenten mit dem angegebenen Namen und der Anfangsnote und gib dann Folgendes in separaten Zeilen aus:
- Den Namen des Studenten
- Die Anfangsnote des Studenten
- Ob der Student den angegebenen Bestehensgrenzwert erreicht hat (gib
trueoderfalseaus) - Die Note des Studenten nach der Aktualisierung mit der neuen Note
- Ob der Student nach der Notenaktualisierung denselben Bestehensgrenzwert erreicht hat
Wenn die Eingaben beispielsweise Emma, 55, 60 und 75 lauten, sollte die Ausgabe wie folgt aussehen:
Emma
55
false
75
trueEmma hatte anfangs eine Note von 55, womit sie den Bestehensgrenzwert von 60 nicht erreicht hat. Nach der Aktualisierung ihrer Note auf 75 besteht sie nun!
Probier es selbst
-- Student-Modul laden
local Student = require('Student')
-- Eingaben lesen
local name = io.read()
local initialGrade = tonumber(io.read())
local threshold = tonumber(io.read())
local newGrade = tonumber(io.read())
-- TODO: Erstelle einen Studenten mit dem gegebenen Namen und der Anfangsnote
-- TODO: Gib den Namen des Studenten mit dem Getter aus
-- TODO: Gib die Anfangsnote des Studenten mit dem Getter aus
-- TODO: Prüfe und gib aus, ob der Student mit dem gegebenen Schwellenwert bestanden hat
-- TODO: Aktualisiere die Note des Studenten mit dem Setter
-- TODO: Gib die neue Note des Studenten aus
-- TODO: Prüfe und gib aus, ob der Student nach der Notenaktualisierung bestanden hat
Alle Lektionen in Objektorientierte Programmierung
1Das 'self'-Konzept
Tabellen mit FunktionenExplizites 'self'Die Doppelpunkt-SyntaxPunkt vs. DoppelpunktZusammenfassung – Beweglicher Punkt4Projekt: Digitale Bank
Projekt-SetupEinzahlungsmethode7Polymorphie & Überschreiben
Methoden überschreibenElternmethoden aufrufenDuck TypingGemeinsames InterfaceTyp prüfenRückblick - Mitarbeiterrollen10Projekt: Formen-Manager
Projekt-SetupRechteck-KlasseKreis-KlasseUmfang-MethodeFormen-SammlungGesamtflächeFormen filtern2Klassen-Prototyp-Muster
Das Prototyp-KonzeptVerknüpfung mit __indexDer :new()-KonstruktorAttribute initialisierenUnabhängige InstanzenZusammenfassung – Autofabrik5Operatorüberladung in OOP
Objekte addierenObjekte subtrahierenObjekte verkettenObjekte vergleichen (<, >)Rückblick – Wallet-Mathematik3Objektzustand und -verhalten
InstanzvariablenGetter-MethodenSetter-MethodenBerechnete EigenschaftenStrings formatierenGleichheitsprüfungenZusammenfassung – Studentennote6Grundlagen der Vererbung
Das Vererbungs-SetupMethoden vererbenDen Konstruktor erweiternChild-Methoden hinzufügenGemeinsam vs. EinzigartigZusammenfassung - Formen-Hierarchie9Komposition & Mixins
Has-A-BeziehungDelegationEinfache MixinsAnwendung mehrerer MixinsMixins vs. VererbungZusammenfassung – Roboter-Montage12Abschluss-Herausforderungen
Wiederholung - InventarsystemWiederholung - BenutzerverwaltungWiederholung - Score-TrackerFinaler OOP-CheckÜbe selbstständig: Online-Lua-Compiler