Classes et instances

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.

  1. Quels qualificateurs, public, final ou private, doit-on donner aux propriétés ?

  2. Est-il raisonnable d’ajouter des méthodes pour accéder aux propriétés privées ?

  3. Implémenter la classe Bottle.