## Exemple partant de la dernière question du test. ``` objet abstrait jouet var protégée prix, poids : décimal; var protégée stock : entier; methode constructeur(prix,poids) ceci->prix = prix; ceci->poids = poids; ceci->stock = 0; fin methode methode ajouter(nombre=1) ceci->stock = ceci->stock + nombre; fin methode methode diminuer(nombre=1) ceci->stock = ceci->stock - nombre; fin methode fin objet objet nounours étend jouet var couleur, matière chaînes; methode constructeur(prix,poids,couleur,matière) parent->constructeur(prix,poids); ceci->couleur = couleur; ceci->matière = matière; fin methode; fin objet /* pseudo code pour l'utiliser (cf image) */ ``` ## Exemple étendu pour gérer le stock d'un magasin de jouets ``` objet jouet var nom, type, localisation : chaîne; var privée prix : décimal; var privée stock : entier; methode constructeur(nom,type,localisation,prix); ceci->nom = nom; ceci->type = type; ceci->localisation = localisation; ceci->prix = prix; ceci->stock = 0; fin methode methode ajouter(nombre=1) ceci->stock = ceci->stock + nombre; fin methode methode diminuer(nombre=1) ceci->stock = ceci->stock - nombre; fin methode methode donne_prix() renvoyer ceci->prix; fin methode; methode donne_stock() renvoyer ceci->stock; fin methode; fin objet ``` ## pseudo code pour l'utiliser : ``` var fini : booléen; var nom, type, localisation, reponse_fin : chaine; var tdj : tableau; var nb_jouet, stock : entier; ver prix : decimal; Tant que fini != vrai Afficher "Nom du jouet ?" Lire nom; Afficher "Type ?" Lire type; Afficher "Cave ou salle ?" Lire localisation; Si localisation != "cave" Alors localisation = salle Fin si Afficher "Stock ?" Lire stock; Afficher "Prix ?" Lire prix; tdj[nb_jouet] = nouveau jouet(nom,type,localisation,prix); tdj[nb_jouet]->ajouter(stock); nb_jouet = nb_jouet + 1; Afficher "Jouet " ~ nb_jouet ~ " créé !"; Afficher "fini ?" Lire reponse_fin Si reponse_fin == "oui" Alors fini = vrai Fin si Fin tant que pour i = 0 ; i < nb_jouets ; i++ Afficher "Le jouet " ~ i ~ " est un " ~ tdj[i]->type Afficher " nommé " ~ tdj[i]->nom Afficher " et est dans la " ~ tdj[i]->localisation; Afficher "Il y en a " ~ tdj[i]->donne_stock() ~ " disponibles"; fin pour ```