Récapitulatif - Note de l'étudiant
Fait partie de la section Programmation orientée objet du Journey Lua de Coddy. Leçon 18 sur 70.
Défi
FacileConstruisons une classe Student complète qui rassemble tout ce que vous avez appris dans ce chapitre : variables d'instance, getters, setters et propriétés calculées, le tout fonctionnant ensemble !
Vous organiserez votre code sur deux fichiers :
Student.lua: Définissez votre classeStudentavec le modèle de prototype standard. Chaque étudiant doit stocker unnameet unegrade. Votre classe a besoin de :- Un constructeur
:new(name, grade) - Un getter
:getName()qui retourne le nom de l'étudiant - Un getter
:getGrade()qui retourne la note actuelle - Un setter
:setGrade(newGrade)qui met à jour la note - Une méthode
:hasPassed(threshold)qui retournetruesi la note de l'étudiant est supérieure ou égale au seuil (threshold), sinonfalse
- Un constructeur
main.lua: Importez votre module Student et démontrez toutes les fonctionnalités en créant un étudiant, en vérifiant son statut, en mettant à jour sa note et en vérifiant les changements.
Vous recevrez quatre entrées :
- Le nom de l'étudiant
- La note initiale
- Le seuil de réussite à vérifier
- La nouvelle note à définir
Dans votre fichier principal, créez un étudiant avec le nom et la note initiale donnés, puis affichez les éléments suivants sur des lignes séparées :
- Le nom de l'étudiant
- La note initiale de l'étudiant
- Si l'étudiant a réussi avec le seuil donné (affichez
trueoufalse) - La note de l'étudiant après l'avoir mise à jour avec la nouvelle note
- Si l'étudiant a réussi avec le même seuil après la mise à jour de la note
Par exemple, si les entrées sont Emma, 55, 60, et 75, la sortie devrait être :
Emma
55
false
75
trueEmma avait initialement une note de 55, ce qui ne respectait pas le seuil de réussite de 60. Après avoir mis à jour sa note à 75, elle réussit maintenant !
Essayez vous-même
-- Requiert le module Student
local Student = require('Student')
-- Lit les entrées
local name = io.read()
local initialGrade = tonumber(io.read())
local threshold = tonumber(io.read())
local newGrade = tonumber(io.read())
-- TODO: Créer un étudiant avec le nom et la note initiale donnés
-- TODO: Afficher le nom de l'étudiant en utilisant le getter
-- TODO: Afficher la note initiale de l'étudiant en utilisant le getter
-- TODO: Vérifier et afficher si l'étudiant a réussi avec le seuil donné
-- TODO: Mettre à jour la note de l'étudiant en utilisant le setter
-- TODO: Afficher la nouvelle note de l'étudiant
-- TODO: Vérifier et afficher si l'étudiant a réussi après la mise à jour de la note
Toutes les leçons de Programmation orientée objet
1Le concept de « self »
Tables avec fonctions« self » expliciteLa syntaxe avec deux-pointsPoint vs deux-pointsRécapitulatif - Point mobile4Projet : Banque numérique
Configuration du projetMéthode de dépôt7Polymorphisme et Redéfinition
Redéfinition de méthodesAppeler des méthodes parentesDuck TypingInterface communeVérification du typeRécapitulatif - Rôles des employés10Projet : Gestionnaire de formes
Configuration du projetClasse RectangleClasse CercleMéthode PérimètreCollection de formesAire totaleFiltrer les formes2Modèle de prototype de classe
Le concept de prototypeLiaison avec __indexLe constructeur :new()Initialisation des attributsInstances indépendantesRécapitulatif - Usine de voitures5Surcharge d'opérateurs en POO
Additionner des objetsSoustraire des objetsConcaténer des objetsComparer des objets (<, >)Récapitulatif - Calculs de portefeuille8Encapsulation
Conventions de nommageClosures pour la confidentialitéAccès via les ClosuresTables en lecture seuleLogique de validationRécapitulatif - Coffre-fort sécurisé11Patrons de conception (Lite)
Fonctions FactoryTable SingletonPatron IteratorObserver (Écouteur)Récapitulatif - Logger Factory3État et comportement des objets
Variables d'instanceMéthodes GetterMéthodes SetterPropriétés calculéesFormatage de chaînesVérifications d'égalitéRécapitulatif - Note de l'étudiant6Bases de l'héritage
Mise en place de l'héritageHériter des méthodesÉtendre le constructeurAjouter des méthodes enfantsPartagé vs UniqueRécapitulatif - Hiérarchie des formesEntraînez-vous par vous-même : Compilateur Lua en ligne