Classes et instances
Révision du cours
Texte à trous
Remplir les trous du texte suivant en utilisant les mots suivants (un même mot pourra être utilisé plusieurs fois) : attribut, classe, méthode, responsabilité, raison, changer, nommer, seule.
- Une classe ne doit avoir qu’une \(\underline{~~~~~~~~~~~~}\) \(\underline{~~~~~~~~~~~~}\).
- Une responsabilité est une \(\underline{~~~~~~~~~~~~}\) de \(\underline{~~~~~~~~~~~~}\)
- Il est important de bien \(\underline{~~~~~~~~~~~~}\) chaque \(\underline{~~~~~~~~~~~~}\), \(\underline{~~~~~~~~~~~~}\) et \(\underline{~~~~~~~~~~~~}\).
Acronymes
Quel est le sens des acronymes suivants ?
- DRY
- DOT
- KISS
- SRP
Public/privé et mutable/immutable
Une classe Car
possède les attributs suivants :
bodyColor
currentSpeed
gasolineLevel
licensePlate
turnSignalState
Public ou privé
Indiquez pour chaque attribut si vous pensez qu’il doit être public ou privé.
- privée (mot-clé private) : la valeur de l’attribut ne peut être accédée ou modifiée qu’à l’intérieur de la classe
- publique (mot-clé public) : la valeur de l’attribut peut être accédée ou modifiée à l’extérieur de la classe
Mutable ou immutable
Indiquez pour chaque attribut si vous pensez qu’il doit être mutable ou immutable.
- Mutable : la valeur de la propriété peut changer au cours du temps
- Immutable : la valeur de la propriété ne peut pas être modifiée après la construction de l’objet
Classes
On souhaite modéliser un réfrigérateur. Imaginer quelles peuvent être ses propriétés et ses méthodes. Même question pour un chien, pour une liste de course.
Flacons
Vous travaillez chez Bobard & Co., fabriquant exclusif du sirop Mirifik, un élixir issu de la recherche spatiale qui rend jeune, beau et intelligent et qui empêche la chute des cheveux et les tâches de transpiration. Dilué à différentes concentrations, le sirop Mirifik est commercialisé dans diverses sortes de flacons.
Nous nous intéressons à la classe Bottle
dont les instances représentent les flacons de sirop Mirifik en stock. Cette classe comporte :
des propriétés :
- une capacité en mL,
- un volume de liquide en mL,
- une concentration (le rapport volume de sirop / volume de sirop et d’eau),
- un étiquette (un texte quelconque),
des méthodes :
public void pourSyrup(double volume)
permettant d’ajouter du sirop,public void pourWater(double volume)
permettant d’ajouter de l’eau,public void transvase(Bottle pouringBottle, double volume)
permettant de verser du contenu provenant d’une autre bouteille.public void drink(double volume)
permettant d’extraire une quantité de liquide (toute la bouteille si la quantité est supérieure au volume).public String toString()
produisant une chaîne de caractères indiquant l’étiquette, le volume et la concentration de la bouteille.
Si une bouteille est pleine, tout ce qu’on tente d’y ajoute s’écoule à côté de la bouteille et est perdu.
Quels qualificateurs,
public
,final
ouprivate
, doit-on donner aux propriétés ?Est-il raisonnable d’ajouter des méthodes pour accéder aux propriétés privées ?
Implémenter la classe
Bottle
.