Récapitulatif - Calculs de portefeuille
Fait partie de la section Object Oriented Programming du Journey Lua de Coddy — leçon 30 sur 70.
Défi
FacileConstruisons une classe Wallet qui rassemble les compétences de surcharge d'opérateurs que vous avez apprises dans ce chapitre. Votre 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 .
Vous organiserez votre code sur deux fichiers :
Wallet.lua: Définissez votre classe Wallet avec un champamountreprésentant la somme d'argent qu'il contient. Incluez un constructeur:new(amount)et implémentez deux métaméthodes :__add: L'ajout de deux portefeuilles crée un nouveau portefeuille contenant le total combiné__lt: La comparaison de portefeuilles détermine lequel contient le moins d'argent
main.lua: Importez votre module Wallet, créez des instances de portefeuille et démontrez le fonctionnement des deux opérations ensemble.
Vous recevrez trois entrées :
- Le montant du premier portefeuille
- Le montant du deuxième portefeuille
- Le montant du troisième portefeuille
Dans votre fichier principal, créez trois portefeuilles avec les montants donnés. Ensuite :
- Additionnez le premier et le deuxième portefeuille pour créer un portefeuille combiné
- Affichez le montant du portefeuille combiné
- Comparez le portefeuille combiné avec le troisième portefeuille en utilisant <code>< et affichez le résultat (
trueoufalse) - Comparez le portefeuille combiné avec le troisième portefeuille en utilisant
et affichez 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) plus le deuxième portefeuille (30) crée un portefeuille combiné de 80. Comme 80 est inférieur à 100, la première comparaison est true. Comme 80 n'est pas supérieur à 100, la deuxième comparaison est 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 Object Oriented Programming
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 Rectangle2Modè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 formes