recuperer une variable public d un autre package

recuperer une variable public d un autre package - Java - Programmation

Marsh Posté le 22-12-2004 à 13:36:41    

Voila j'ai deux package : jeurobot et interfacejeu
 
Dans mon fichier Echiquier.java (inclu dans le package jeurobot) j'ai des variables de type Vector qui sont déclaré public comme ceci : public Vector v_robot;
 
Et dans mon fichier GameWindows.java (inclu dans le package interfacerobot) je dois récuperer cet objet v_robot pour pouvoir afficher son contenu dans une interface graphique.
 
C'est Echiquier.java qui modifie souvent le vector v_robot donc le passé en argument je trouve ca bof. Surtout que c'est pas le seul a récuperer.  
La question est donc la suivante : Je fais comment pour récuperer v_robot dans GameWindows.java?
 
J'ai tenté jeurobot.Echiquier.v_robot, jeurobot.v_robot et Echiquier.v_robot mais ca marche pas.
 
Merci de votre aide. Je bloque depuis une heure dessus.
 
PS : Dans Echiquier.java j'importe GameWindows : import interfacejeu.GameWindow;

Reply

Marsh Posté le 22-12-2004 à 13:36:41   

Reply

Marsh Posté le 22-12-2004 à 13:39:30    

Ben tu fait ton import, tu instancies ton echiquier, et t'accèdes à ses variables publiques... Je vois pas trop le problème  :heink:


Message édité par FlorentG le 22-12-2004 à 13:39:42
Reply

Marsh Posté le 22-12-2004 à 13:43:15    

oula je comprend pas quel import tu veux que je fasse ni comment j'instancie echiquier. Tu peux etre plus explicite ?
 
Voila le code qui bloque (qui se trouve dans GameWindow.java):

Code :
  1. for (int i=0;i<?????.v_robot.size();i++)


 
et voila comment est déclarer mon vector (qui se trouve dans Echiquier.java):  
 

Code :
  1. package jeurobot;
  2. import java.util.*;  // Vector
  3. import interfacejeu.GameWindow;
  4. public class Echiquier
  5. {
  6. protected int nxp;
  7. protected int m;
  8. protected int nbr;
  9. public Vector v;
  10. public Vector v_robot;


Message édité par groskachou le 22-12-2004 à 13:44:23
Reply

Marsh Posté le 22-12-2004 à 13:45:47    

groskachou a écrit :

Merci de votre aide. Je bloque depuis une heure dessus.

:ouch: Tout ça ? Mais c'est beaucoup !
 
Bon, sérieusement, tu sembles avoir qq soucis avec l'OO et le design.
 
D'abord, en règle, on n'accède pas aux attributs directement, on passe par des méthodes.
 
Ensuite, la business logic ne doit pas avoir connaissance de l'interface graphique, mais l'inverse est possible.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 22-12-2004 à 13:46:26    

Quand tu dis que ça bloque, il se passe quoi ? Erreur à la compilation ?


Message édité par FlorentG le 22-12-2004 à 13:46:48
Reply

Marsh Posté le 22-12-2004 à 13:47:11    

Sinon comme dit Sircam, revoit les concept de l'orienté objet...

Reply

Marsh Posté le 22-12-2004 à 13:47:42    

Citation :

Dans mon fichier Echiquier.java (inclu dans le package jeurobot) j'ai des variables de type Vector qui sont déclaré public comme ceci : public Vector v_robot;


1. déclare tes attributs en private et fait des accesseurs public,
2. Y'a encore des gens à utiliser la notation ongroise en java ?? brrr c'est caca
 

Citation :

J'ai tenté jeurobot.Echiquier.v_robot, jeurobot.v_robot et Echiquier.v_robot mais ca marche pas.


Ce que tu tentes là c'est des accès statique, passe par l'instance plutot ou alors transforme tes attributs en attributs de classe (static)

Reply

Marsh Posté le 22-12-2004 à 13:49:34    

bidem a écrit :

[quote]Ce que tu tentes là c'est des accès statique, passe par l'instance plutot ou alors transforme tes attributs en attributs de classe (static)


Heeeeck non, ne lui dit pas ça !!!


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 22-12-2004 à 13:50:36    

bidem a écrit :

Citation :

Dans mon fichier Echiquier.java (inclu dans le package jeurobot) j'ai des variables de type Vector qui sont déclaré public comme ceci : public Vector v_robot;


1. déclare tes attributs en private et fait des accesseurs public,
2. Y'a encore des gens à utiliser la notation ongroise en java ?? brrr c'est caca
 

Citation :

J'ai tenté jeurobot.Echiquier.v_robot, jeurobot.v_robot et Echiquier.v_robot mais ca marche pas.


Ce que tu tentes là c'est des accès statique, passe par l'instance plutot ou alors transforme tes attributs en attributs de classe (static)


 
Héhé, la notation hongroise j'men servait encore sous Access 97, c'était conseillé à l'époque :D
 
Sinon c'est ce que je lui ai dit, d'instancier sa classe Echiquier... Mais vu qu'il ne sais pas ce que c'est "instancier", je pense qu'il doit apprendre d'abord les concepts orientés objets...


Message édité par FlorentG le 22-12-2004 à 13:50:43
Reply

Marsh Posté le 22-12-2004 à 13:55:52    

Ok avec le static j'y suis arrivé. Merci a vous.
Je commence tout juste l'OO et le graphisme en java avec 1h de cours de OO et 0h de graphisme avec un prof plus que nul. Vive certaines écoles d'ingénieur qui vous disent: débrouillez vous, vous etes des futurs ingénieurs.......


Message édité par groskachou le 22-12-2004 à 13:57:18
Reply

Marsh Posté le 22-12-2004 à 13:55:52   

Reply

Marsh Posté le 22-12-2004 à 13:57:21    

Oula, c'est sûr, il en faut des heures avant de tout capter l'OO et tous ses concepts ésotériques...


Message édité par FlorentG le 22-12-2004 à 13:57:33
Reply

Marsh Posté le 22-12-2004 à 14:10:04    

groskachou a écrit :

Ok avec le static j'y suis arrivé. Merci a vous.


Mais nooooon !  :cry:  Ce n'est sûrement pas bon ! Il disait ça en pensant que tu comprendrais les tenants et les aboutissants, mais il n'en est rien.
 
Ton programme marche mais il est très certainement mal conçu. Un programme d'ingénieur, quoi.  [:airforceone]
 
Si "instancier" ne te dit rien, tu n'es certainement pas dans le bon pour utiliser static.
 
Enfin  [:kiki]


Message édité par sircam le 22-12-2004 à 14:10:42

---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 22-12-2004 à 14:11:41    

sircam a écrit :


 
Ton programme marche mais il est très certainement mal conçu. Un programme d'ingénieur, quoi.  [:airforceone]
 
Enfin  [:kiki]


 
[:rofl]
 
Sinon oui, pas bien d'y accéder en statique :o

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed