Configuration du projet
Fait partie de la section Programmation orientée objet du Journey Lua de Coddy. Leçon 19 sur 70.
Défi
FacileNous commençons le projet Digital Bank. Au cours des prochaines leçons, tu vas construire une classe Account capable de recevoir des dépôts, d’effectuer des retraits, de s’afficher et de transférer de l’argent vers d’autres comptes. Tout commence par une structure de fichiers claire et un constructeur.
Tes deux fichiers :
Account.lua: définir la tableAccount, définirAccount.__index = Accountafin que les instances trouvent leurs méthodes, et écrire le constructeur:new(). Il crée une table vide, définit sa métatable surAccount, lui attribue unbalancede0et la renvoie. Le fichier se termine parreturn Account.main.lua: charger le module avecrequire('Account'), créer deux comptes avecAccount:new(), afficher le solde de chacun sur sa propre ligne, puis affichersavings == checkingpour montrer que les deux appels ont produit deux tables différentes.
Résultat attendu :
0
0
falseChaque compte commence à zéro. Dans la prochaine leçon, tu ajouteras la méthode :deposit(amount) qui fait augmenter le solde.
Essayez vous-même
-- TODO: charger le module Account (le fichier est Account.lua)
local Account = nil
-- TODO: créer deux comptes avec Account:new()
-- TODO: afficher le solde de chaque compte (un par ligne)
-- TODO: afficher si les deux comptes sont la même table (ils ne devraient pas l'être)
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