Bonjour à tous,
Je débute en Java et plus généralement en langage objet et je butte sur un problème. Je dois réaliser un programme de chauffage composé de 3 objets : un thermomètre, une chaudière et un thermostat.
J'ai commencé par définir le rôle de chacun de ces objets, à savoir :
Le thermomètre :
- possède une valeur d'état en °C
- sa valeur peut être consultée
- sa valeur peut être mise à jour
La chaudière :
- possède une valeur d'état (allumée ou éteinte)
- sa valeur peut être modifiée
Le thermostat :
- possède une tranche de température d'allumage
- possède une référence vers le thermomètre qu'il peut consulter
- possède une référence vers la chaudière qu'il peut piloter
J'ai ensuite créé les trois fichiers .java pour les trois classes liées à ces objets avec les procédures associées à chacun de ses comportements.
Pour finir j'ai créé un programme principal Launcher.java qui montre la répercussion d'un changement de température à travers ces trois objets. Dans ce fichier, je créé donc une instance de chaque objet dont un thermomètre que j'initialise :
Le programme principal demande au thermostat de consulter la température de ce thermomètre pour agir en fonction sur la chaudière également créée dans le programme principal. J'en viens à mon problème : lorsque je souhaite utiliser un objet dans une autre classe que celle qui l'a créé, celle-ci ne peut pas résoudre l'objet. Typiquement, lorsque j'appelle une procédure de la classe Thermostat qui consiste à consulter le thermometre, ça ne marche pas.Code:
1
2
3 Thermometre thermometre=new Thermometre(); thermometre.modifierTemperature(5);
Mon code Laucher.java :
Mon code Thermostat.java :Code:
1
2
3
4
5
6
7
8
9
10 package Chauffage; public class Launcher { public static void main(String[] args) { Thermometre thermometre=new Thermometre(); Chaudiere chaudiere=new Chaudiere(); thermometre.modifierTemperature(5); } }
Mon code Thermometre.java :Code:
1
2
3
4
5
6
7 package Chauffage; public class Thermostat { private boolean etat; temperature=thermometre.temperatureCelcius(); }
Le code n'est bien sûr pas complet. Pouvez-vous me dire ce qui ne va pas s'il vous plait ? Merci :DCode:
1
2
3
4
5
6
7
8
9
10
11 package Chauffage; public class Thermometre { private double temperatureMesuree; public double temperatureCelcius() { return this.temperatureMesuree; } }