cs_dunith
Messages postés100Date d'inscriptionsamedi 5 janvier 2008StatutMembreDernière intervention11 avril 2008
-
5 févr. 2008 à 14:42
Utilisateur anonyme -
20 avril 2008 à 23:59
bonjour;
je dois déclarer et initialiser , en java, un tableau de diminsions de type byte mais en typedef ;
car en C++ est déclaré comme suit:
typedef BYTE TABSEQ[20][18];
mais comme typedef n'existe pas en jave, donc je ne sais pas s'il faut déclarer une calsse qui va contenir que d'un tableau à deux dimensions?
quelq'un peut me dire si c'est une bonne idée ou non...........je suis débutante en java
Tu te compliques inutilement et Java n'est pas C++.
Mets simplement byte tabseq[][]; ou alors crée une classe qui ne contient que ça comme attribut. En Java, on ne met pas directement la taille comme ça. Par contre, tu peux écrire :
byte tabseq[][]=new byte[20][18];
N'essaie pas de reproduire bêtement ce que tu connais dans d'autres langages, essaie de te documenter sur Java et de penser en Java. Il y a des pièges à éviter quand on vient du C++.
Reprendre un programme C++ pour le traduire en Java n'est pas un exercice très compliqué si c'est du C++ pur qui ne tire pas partie de fonctionnalités de très bas niveau. Il faut surtout que tu fasses attention aux différences de comportement dans la gestion du typage quand tu utilises le polymorphisme.
Par défaut, toute méthode de Java a le même comportement qu'une méthode préfixée "virtual" en C++ sauf si elle est préfixée "final". Java calcule le type à l'exécution par défaut alors que C++ calcule le type à la compilation.
L'équivalent des classes virtuelles pures de C++ sont les interfaces en Java et pour les classes virtuelles, ce sont les classes abstraites.
Il existe des outils automatiques pour traduire un programme C++ en Java. Cherche sur google. Sinon, tu peux te servir d'ANTLR avec les grammaires des langages respectifs pour construire les arbres de syntaxe abstraites.
Il y a des listes en Java, regarde la documentation : http://java.sun.com/javase/6/docs/api/ Regarde la classe Vector ou bien ArrayList pour faire tes listes. Tu peux ignorer le typedef et utiliser int à la place de NOEUD.