Menu
Coddy logo textTech

Récapitulatif - Usine de voitures

Fait partie de la section Object Oriented Programming du Journey Lua de Coddy — leçon 11 sur 70.

challenge icon

Défi

Facile

Construisons une classe Car complète qui rassemble tout ce que vous avez appris dans ce chapitre ! Vous allez créer un système de fabrication de voitures où chaque voiture possède son propre modèle et sa propre couleur, démontrant ainsi une organisation de module appropriée et des instances indépendantes.

Vous organiserez votre code sur deux fichiers :

  • Car.lua : Définissez votre classe Car en suivant le modèle de prototype standard. Votre classe a besoin d'un constructeur :new(model, color) qui crée des voitures avec leurs propres attributs. Incluez une méthode :describe() qui permet à chaque voiture de se présenter.
  • main.lua : Importez votre module Car et créez plusieurs instances de voiture pour démontrer que chaque voiture conserve son propre état indépendant.

Votre méthode :describe() doit imprimer exactement dans ce format :

A [color] [model]

Vous recevrez quatre entrées :

  1. Le modèle pour la première voiture
  2. La couleur pour la première voiture
  3. Le modèle pour la deuxième voiture
  4. La couleur pour la deuxième voiture

Dans votre fichier principal, créez deux voitures en utilisant les entrées fournies et faites en sorte que chacune se décrive sur une ligne séparée.

Par exemple, si les entrées sont Sedan, blue, Truck, et red, la sortie devrait être :

A blue Sedan
A red Truck

Chaque voiture doit stocker son propre modèle et sa propre couleur, prouvant que votre classe crée des instances véritablement indépendantes.

Essayez vous-même

-- Charger le module Car
local Car = require('Car')

-- Lire les entrées
local model1 = io.read()
local color1 = io.read()
local model2 = io.read()
local color2 = io.read()

-- TODO : Créer deux instances de voiture en utilisant Car:new()
-- TODO : Appeler :describe() sur chaque voiture pour afficher leurs descriptions

Toutes les leçons de Object Oriented Programming