-
Cours :
- cours 1 transparents : pdf
- cours 2 transparents : pdf
- cours 3 transparents : pdf
- cours 4 transparents : pdf
- cours 5 transparents : pdf
- cours 6 transparents : pdf
- cours 7 transparents : pdf
- cours 8 transparents : pdf
- cours 9 transparents : pdf
- cours 10 transparents : pdf
- cours 11 transparents : pdf
- cours 12 transparents : pdf
- Documents :
- TD :
- TP :
- TP 8 (pdf)
- TP 9 (pdf)
- TP 10 (pdf), Corrigé TP 10 (pdf)
- Projet astéroïdes (pdf)
TP 4 : Ampoules
Ampoules
Une ampoule électrique (light bulb) est un objet de la vie quotidienne. Il est possible de l’allumer, de l’éteindre, etc. Elle est définie par des attributs : la puissance (power) en Watts, une couleur (pour simplifier cette donnée sera ici de type chaîne de caractères), et le fait d’être allumée ou éteinte.
Tâche 1 : Créer une classe
Lightbulb
.
Tâche 2 : Définissez les signatures (et uniquement les signatures pas le code) des méthodes pour cette classe :
getPower()
,getColor()
etisOn()
pour accéder aux différents attributs d’une ampoule;on()
etoff()
pour allumer ou éteindre une ampoule;public String toString()
qui fournit une chaîne de caractères décrivant l’ampoule.
Pour que votre code compile, mettez pour le moment des instructions return
par défaut (0
, false
ou null
suivant que le retour de la méthode soit un nombre, un booléen ou un objet).
Tâche 3 : Définissez dans la classe les attributs nécessaires pour ces méthodes ainsi que le constructeur.
Quel est selon vous le type le plus pertinent pour représenter l’état allumé ou éteint d’une ampoule ?
Tâche 4 : Codez le corps des méthodes de la classe et enlever les retours par défaut.
Tâche 5 : Construisez des instances de cette classe et manipulez les pour faire des tests sur le fonctionnement des méthodes que vous avez codé.
Interrupteurs
On s’intéressera ici à la modélisation d’interrupteurs (switch) électriques qui permettent l’allumage et l’extinction d’une (et une seule) ampoule donnée. L’ampoule contrôlée par l’interrupteur est un attribut de cet objet. Sa valeur est fournie en paramètre lors de la construction de l’objet interrupteur. On doit pouvoir accéder à l’ampoule contrôlée par l’interrupteur. On peut appuyer sur un interrupteur ce qui a pour effet, à chaque appui, de faire passer l’ampoule de éteinte à allumée ou inversement.
Tâche 6 : Créez une classe
Switch
.
Tâche 7 : Définissez les signatures (et uniquement les signatures pas le code) des méthodes pour cette classe :
getLightbulb()
etpush()
Tâche 8 : Définissez les attributs (l’état) des instances de cette classe et son constructeur.
Tâche 9 : Codez le corps des méthodes de la classe et enlever les retours par défaut.
Tâche 10 : Construisez des instances de cette classe et manipulez les pour faire des tests sur le fonctionnement des méthodes que vous avez codé.
Guirlandes
Une guirlande électrique (light string) est composée d’un certain nombre d’ampoules électriques. Il est possible d’allumer et d’éteindre la guirlande, c’est-à-dire que l’on allume ou éteint toutes les ampoules de la guirlande «en même temps». On souhaite créer une classe LightString
pour modéliser de telles guirlandes. Cette classe doit respecter les contraintes décrites ci-dessous. Vous pouvez ajouter à la classe d’autres méthodes qui vous semblent pertinentes.
Les contraintes de la classe LightString
sont :
les ampoules qui composent la guirlande sont des objets du type
Lightbulb
.le nombre d’ampoules de la guirlande est défini à sa création et les ampoules qui composent la guirlande sont créées au moment la création de la guirlande.
Initialement toutes ces ampoules sont éteintes, de couleur blanche et ont une puissance de 1W. Vous utiliserez un attribut de type tableau d’objets
LightBulb
pour gérer ces ampoules au sein de la guirlande.on veut disposer d’une méthode qui permette d’obtenir la \(i\)-ème ampoule de la guirlande, le résultat de la méthode est null si l’indice i fourni en paramètre n’est pas valide.
- Écrivez la signature de la méthode.
- Écrivez sa documentation.
- Codez cette méthode.
on veut pouvoir changer une des ampoules de la guirlande grâce à la méthode suivante
void changeLightbulb(int i, Lightbulb theBulb)
qui change la \(i\)-ème ampoule de la guirlande.
Tâche 11 : Donnez le code de cette méthode.
Tâche 12 : Donnez le code des méthodes
on()
etoff()
qui permettent de d’allumer ou d’éteindre toutes les ampoules de la guirlande.
Tâche 13 : Donnez le code de la méthode
getConsumedPower()
qui fournit comme résultat la puissance totale exprimée en Watts consommée par les ampoules de la guirlande lorsqu’elle est allumée, et0
sinon.