Java, initialisation d'un tableau de classe
risperidone
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour,
Je suis en train d'écrire un programme en java et je rencontre un problème :
J'ai créé une structure nommé "axxe" qui ne contient que 2 variables de type INT
-
-
J'ai ensuite créé une autre structure (autresStruct) qui contient, entre autres, un tableau de "axxe" que je nomme tab ...
-
-
dans mon main je créé une variable de type "autresStruct" ( autresStruct a = new autresStruct(); )
-
-
puis j'essaie d'initialiser le tableau avec : axxe a.tab[] = new axxe[4]; ( j'ai aussi essayer avec un "for (int i = 0; i < 4; i++){a.tab[i] = new axxe();}" sans succès )
-
-
Et le compilateur m'agresse et affiche des messages d'erreurs generiques qui ne m'aide absolument pas ...
-
-
Je debute en java et il y a surement pas grand chose mais je bloque depuis un moment , donc je viens solliciter votre aide avant de m'arracher les cheveux ...
Je suis en train d'écrire un programme en java et je rencontre un problème :
J'ai créé une structure nommé "axxe" qui ne contient que 2 variables de type INT
-
-
J'ai ensuite créé une autre structure (autresStruct) qui contient, entre autres, un tableau de "axxe" que je nomme tab ...
-
-
dans mon main je créé une variable de type "autresStruct" ( autresStruct a = new autresStruct(); )
-
-
puis j'essaie d'initialiser le tableau avec : axxe a.tab[] = new axxe[4]; ( j'ai aussi essayer avec un "for (int i = 0; i < 4; i++){a.tab[i] = new axxe();}" sans succès )
-
-
Et le compilateur m'agresse et affiche des messages d'erreurs generiques qui ne m'aide absolument pas ...
-
-
Je debute en java et il y a surement pas grand chose mais je bloque depuis un moment , donc je viens solliciter votre aide avant de m'arracher les cheveux ...
A voir également:
- Java, initialisation d'un tableau de classe
- Jeux java itel - Télécharger - Jeux vidéo
- Tableau word - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Trier un tableau excel - Guide
- Imprimer un tableau excel - Guide
2 réponses
Il nous faut au minimum les messages d'erreurs du compilateur, et le code correspondant (pas tout, les lignes erronées devraient suffire).
Avec le peu de code que tu nous as mis, la syntaxe est fausse pour :
Avec le peu de code que tu nous as mis, la syntaxe est fausse pour :
axxe a.tab[] = new axxe[4];Tu ne peux pas déclarer a.tab, c'est à l'objet a de le faire, la seule chose que tu puisses faire c'est une initialisation : a.tab = new axxe[4], mais là encore normalement c'est à l'objet a de le faire. La notion d'encapsulation en POO est fondamentale, tu ne peux pas te servir des classes Java comme on utiliserait des struct en C...
Merci pour ta reponse, voici le code en question :
static class Axxe
{
int x;
int y;
}
static class autresStruct
{
Axxe ax[];
}
public static void main(String args[])
{
autresStruct str = new autresStruct();
str.ax = new ax[4]; /* j'ai corrigé cette ligne en fonction de reponse precedente */
}
Grace a ta réponse le compilateur ne râle plus plus mais l'exécution j'ai "Exception in thread "main" java.lang.NullPointerException"
n'y t-il aurait pas un moyen en java de créer une structure toute simple sans nécessairement tomber dans la POO ?
static class Axxe
{
int x;
int y;
}
static class autresStruct
{
Axxe ax[];
}
public static void main(String args[])
{
autresStruct str = new autresStruct();
str.ax = new ax[4]; /* j'ai corrigé cette ligne en fonction de reponse precedente */
}
Grace a ta réponse le compilateur ne râle plus plus mais l'exécution j'ai "Exception in thread "main" java.lang.NullPointerException"
n'y t-il aurait pas un moyen en java de créer une structure toute simple sans nécessairement tomber dans la POO ?
Le compilateur ne râle plus, mais il devrait !
new ax[4]; ne doit pas être compilé, car ax n'est pas une classe.
En fait ta "structure" (ce qui n'a pas de sens en Java) autresStruct, ne sert à rien !
Utilises directement Axxe[] tab = new Axxe[4]; dans ton main.
De plus évite les classes static, ça ne te sers à rien, si tu veux faire une classe Axxe ça se comprend, mais fait la bien, il n'y a aucun intérêt à vouloir contourner la POO en Java, alors que c'est toute sa force !
new ax[4]; ne doit pas être compilé, car ax n'est pas une classe.
En fait ta "structure" (ce qui n'a pas de sens en Java) autresStruct, ne sert à rien !
Utilises directement Axxe[] tab = new Axxe[4]; dans ton main.
De plus évite les classes static, ça ne te sers à rien, si tu veux faire une classe Axxe ça se comprend, mais fait la bien, il n'y a aucun intérêt à vouloir contourner la POO en Java, alors que c'est toute sa force !