probleme pour créer objet

probleme pour créer objet - Java - Programmation

Marsh Posté le 27-01-2006 à 21:23:58    


Bonjour,
 
je suis en formation java, et je dois finalisé un projet, pour cela on ma donnée des classes toute prete mais j'arrive pas les créer.
 
qui peux m'aider ?
 
ci-joint un descripti d'une d'entre elle
 
 
 
 

Code :
  1. public class Carte{
  2. Couleur couleur;
  3. Figure figure;
  4. public Carte (Couleur c, Figure f) {
  5. thiscouleur=c;
  6. this.figure=f;
  7. }
  8. }

Reply

Marsh Posté le 27-01-2006 à 21:23:58   

Reply

Marsh Posté le 27-01-2006 à 21:27:21    

j'ai oublié de précisé que j'ai testé comme ceci :
 

Code :
  1. Carte carte1=new Carte();

Reply

Marsh Posté le 27-01-2006 à 22:17:12    

as-tu un constructeur Carte() ? (ie, sans paramètres)
 
je pense que non, le constructeur dont tu disposes as besoin de 2 paramètres (Couleur et Figure)
 
pour instancier un objet (instanciation = déclaration, réservation espace mémoire, initialisation par appel constructeur) il te faut donc utiliser un constructeur disponible, en l'occurrence Carte(Couleur, Figure) -->
Carte carte1 = new Carte(new Couleur(), new Figure())
ou n'importe quelle instance de Couleur et/ou Figure que tu as déjà
 
ps: un conseil: faut revoir les bases de la POO !!! ;)

Message cité 1 fois
Message édité par trevor le 27-01-2006 à 22:18:21

---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
Reply

Marsh Posté le 27-01-2006 à 22:36:08    

trevor a écrit :

as-tu un constructeur Carte() ? (ie, sans paramètres)
 
je pense que non, le constructeur dont tu disposes as besoin de 2 paramètres (Couleur et Figure)


 
oais il faut le savoir, car d'après toutes les doc que j'ai trouvé il parle que de 1 paramètre, de plus j'avais essayé carte carte 1 = new("coeur","7).
 

trevor a écrit :


pour instancier un objet (instanciation = déclaration, réservation espace mémoire, initialisation par appel constructeur) il te faut donc utiliser un constructeur disponible, en l'occurrence Carte(Couleur, Figure) -->
Carte carte1 = new Carte(new Couleur(), new Figure())
ou n'importe quelle instance de Couleur et/ou Figure que tu as déjà
 
ps: un conseil: faut revoir les bases de la POO !!! ;)


 
Je sais je suis pas trop doué, mais j'essaye du moins, pas facile quand tu fais ça a distance, juste avec comme cours des pdf.
 
en tout cas merci

Reply

Marsh Posté le 27-01-2006 à 22:36:25    

Et encore : j'imagine qu'il n'est pas possible de faire new Couleur() ni new Figure() sans paramètre... Voir aussi les constructeurs de ces deux classes.
 
As-tu jeté un oeil aux énumérations en Java ? L'exemple bateau est justement celui d'un deck de cartes !
 
Couleur et Figure sont remplacées par deux énumérations, ce qui évite la lourdeur du "typesafe enum pattern" et les affres du "constant anti-pattern", mais tout cela ne te dit sans doute rien. Jete toujours un oeil sur le lien, ça devrait d'édifier.
 
   [:pingouino]


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

Marsh Posté le 27-01-2006 à 22:38:43    

Finalement, termine peut-être de faire marcher ton truc comme tu le pensais avant de voir les enum. C'est déjà plus avancé et il vaut mieux commencer "old school" comme tu le fais.
 
N.B. Tu ne pourras pas faire
 

Code :
  1. Carte carte1 = new Carte("coeur", "7" );


 
[:pingouino]


Message édité par sircam le 27-01-2006 à 22:39:02

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

Marsh Posté le 27-01-2006 à 22:56:53    

je sais il faut que je fasse  
Carte sept_Coeur = new Carte(new Couleur("Coeur" ), new Figure("7" ));
Carte sept_Carreau = new Carte(new Couleur("Carreau" ), new Figure("7" ));

Reply

Marsh Posté le 27-01-2006 à 23:11:02    

sircam a écrit :

Et encore : j'imagine qu'il n'est pas possible de faire new Couleur() ni new Figure() sans paramètre... Voir aussi les constructeurs de ces deux classes.


 
+1
j'avais oublié de spécifier ce "détail", mais si c'est le cas, c'est dans la logique du même problème ;)


---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
Reply

Marsh Posté le 28-01-2006 à 00:49:45    

et j'sais pas si c'est juste pour le c/c que ca a foire et si c'est reellement comme ca dans ton fichier source mais dans ton constructeur Carte(....) tu as

Code :
  1. thiscouleur = c;


au lieu de

Code :
  1. this.couleur=c;

:)

Reply

Marsh Posté le 28-01-2006 à 08:17:35    

non c'est une faute de frappe, c'est bien thiscouleur=c;
 
maintenant j'arrive bien a compiler sauf que quand je lance le programme
j'ai le message d'erreur suivant :
 
Exception in thread "main" java.lang.NoClassDefFoundError: belote/java

Reply

Marsh Posté le 28-01-2006 à 08:17:35   

Reply

Marsh Posté le 28-01-2006 à 09:47:00    

dodo a écrit :

non c'est une faute de frappe, c'est bien thiscouleur=c;


Tu veux dire... this.couleur=c;
 
 [:crusty128]
 
 
   [:pingouino]
 
 [:moundir]  


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

Marsh Posté le 28-01-2006 à 09:48:38    

Pour ton autre problème : topic passage obligé débutants -> classpath.


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

Marsh Posté le 28-01-2006 à 12:40:37    

en faite ce que je trouve bizzard dans cette erreur, c'est que je suis sous linux, et que les autres programmes que j'ai compilés fonctionnent.

Reply

Marsh Posté le 28-01-2006 à 15:48:45    


Je suis vraiment trop nases,  :fou: , au lieu de faire java belote, j'ai fais java belote.class, donc normal que ça marche pas.
 
En faite jeme demandais un truc au lieux de créer les objets comme j'ai plus haut, je me demandais pas si c'est pas une erreur étant donnée qu'il faudra les manipuler.
 
Ne vaudrait il paas mieux les mettre dans un tableau  

Code :
  1. int Couleur = new int[4];
  2. Couleur[0]=Coeur;
  3. Couleur[1]=Carreau;
  4. Couleur[2]=Pique;
  5. Couleur[3]=Trefle;
  6. Int Figure=new int [8]
  7. Figure[0]=Sept;
  8. Figure[1]=Huit;
  9. Figure[2]=Neuf;
  10. Figure[3]=Dix;
  11. Figure[4]=Valet;
  12. Figure[5]=Dame;
  13. Figure[6]=Roi;
  14. Figure[7]=AS;


 
 

Reply

Sujets relatifs:

Leave a Replay

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