Récapitulatif - Calculs de portefeuille
Fait partie de la section Programmation orientée objet du Journey Lua de Coddy. Leçon 30 sur 70.
Défi
FacileConstruisons une classe Wallet qui rassemble les compétences en surcharge d’opérateurs que tu as acquises dans ce chapitre. Ton portefeuille stockera une somme d’argent et prendra en charge deux opérations clés : combiner des portefeuilles avec + et comparer des portefeuilles avec <code>< et .
Tu organiseras ton code sur deux fichiers :
Wallet.lua: définis ta classe Wallet avec un champamountreprésentant la somme d’argent qu’elle contient. Inclus un constructeur:new(amount)et implémente deux métaméthodes :__add: additionner deux portefeuilles crée un nouveau portefeuille contenant le total combiné__lt: comparer des portefeuilles détermine lequel contient le moins d’argent
main.lua: importe ton module Wallet, crée des instances de portefeuille et montre les deux opérations fonctionnant ensemble.
Tu recevras trois entrées :
- La somme du premier portefeuille
- La somme du deuxième portefeuille
- La somme du troisième portefeuille
Dans ton fichier principal, crée trois portefeuilles avec les sommes données. Ensuite :
- Additionne les premier et deuxième portefeuilles pour créer un portefeuille combiné
- Affiche la somme du portefeuille combiné
- Compare le portefeuille combiné avec le troisième portefeuille en utilisant <code>< et affiche le résultat (
trueoufalse) - Compare le portefeuille combiné avec le troisième portefeuille en utilisant
et affiche le résultat (trueoufalse)
Par exemple, si les entrées sont 50, 30 et 100, la sortie devrait être :
80
true
falseLe premier portefeuille (50) additionné au deuxième portefeuille (30) crée un portefeuille combiné contenant 80. Comme 80 est inférieur à 100, la première comparaison donne true. Comme 80 n’est pas supérieur à 100, la deuxième comparaison donne false.
Essayez vous-même
local Wallet = require('Wallet')
-- Lire l'entrée
local amount1 = tonumber(io.read())
local amount2 = tonumber(io.read())
local amount3 = tonumber(io.read())
-- TODO : Créer trois portefeuilles avec les montants donnés
-- TODO : Additionner le premier et le deuxième portefeuille pour créer un portefeuille combiné
-- TODO : Afficher le montant du portefeuille combiné
-- TODO : Comparer le portefeuille combiné avec le troisième portefeuille en utilisant < et afficher le résultat
-- TODO : Comparer le portefeuille combiné avec le troisième portefeuille en utilisant > et afficher le résultat
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