| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
| sio:bloc2:poo:ex [2024/09/03 11:25] – jcheron | sio:bloc2:poo:ex [2024/09/03 11:28] (Version actuelle) – jcheron |
|---|
| Objectif : Travailler sur l'instanciation, les constructeurs et l'encapsulation. | Objectif : Travailler sur l'instanciation, les constructeurs et l'encapsulation. |
| |
| Créer une classe Produit avec les attributs privés suivants : | Créer une classe **Produit** avec les attributs privés suivants : |
| |
| |
| - nom (chaîne de caractères) | * nom (chaîne de caractères) |
| - prix (flottant) | * prix (flottant) |
| - quantite (entier) | * quantite (entier) |
| |
| Implémenter les méthodes suivantes : | Implémenter les méthodes suivantes : |
| * En quoi l'encapsulation aide-t-elle à contrôler les modifications sur les attributs du produit ? | * En quoi l'encapsulation aide-t-elle à contrôler les modifications sur les attributs du produit ? |
| * Comment le constructeur facilite-t-il l’instanciation de nouveaux produits ? | * Comment le constructeur facilite-t-il l’instanciation de nouveaux produits ? |
| | |
| | ==== Exercice 4 : Classe pour les Vecteurs ==== |
| | |
| | Objectif : Travailler sur la surcharge des méthodes et l’instanciation. |
| | |
| | Créer une classe **Vecteur** avec les attributs : |
| | |
| | * x (flottant) |
| | * y (flottant) |
| | |
| | Implémenter les méthodes suivantes : |
| | |
| | * Un constructeur qui initialise un vecteur avec deux coordonnées, x et y. |
| | * Une méthode **ajouter** qui accepte un autre vecteur ou deux coordonnées séparées et retourne la somme des vecteurs ou de leurs coordonnées. |
| | * Une méthode **soustraire** qui accepte un autre vecteur ou deux coordonnées séparées et retourne la différence des vecteurs ou de leurs coordonnées. |
| | |
| | === Exemple : === |
| | |
| | |
| | <sxh java> |
| | Vecteur v1 = Vecteur(2, 3); |
| | Vecteur v2 = Vecteur(5, 7); |
| | System.out.println(v1.ajouter(v2)); // Retourne un nouveau vecteur (7, 10) |
| | System.out.println(v1.ajouter(1, 1)); // Retourne un nouveau vecteur (3, 4) |
| | </sxh> |
| | |
| | === Questions : === |
| | |
| | |
| | * Comment la surcharge de la méthode ajouter permet-elle de gérer différents types d'arguments ? |
| | * En quoi le constructeur facilite-t-il l'instanciation de nouveaux vecteurs ? |