Profete162 Posté(e) 28 novembre 2009 Share Posté(e) 28 novembre 2009 (modifié) Salut! Désireux de créer des structures ( un peu comme un C ) pour des éléments qui ont plusieurs attribut ( un nom, une version, une image, etc...) j'ai regardé un peu les tutos sur le net et ai décidé de créer une classe. J'ai donc défini une classe application qui contient mes éléments: public class app { public String img; public String nom; public String version; public String description; public String auteur; public String prix; Maintenant, ayant une liste de X applications, j'ai créé un array de app: app [] malistedeapp=new app[nombre]; et j'espérais pouvoir faire quelquechose comme: malistedeapp[1].name="blabla"; mais ca me renvoie un NullPointerException Est ce que je me suis completement planté? Modifié 28 novembre 2009 par Profete162 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
feust Posté(e) 28 novembre 2009 Share Posté(e) 28 novembre 2009 il te faut des constructeur dans tes classes on en parlera lundi,si tu veux mais des get et set sinon sa marche aussi Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Androc Posté(e) 28 novembre 2009 Share Posté(e) 28 novembre 2009 Juste une petite correction de vocabulaire. En Java on parle d'objets ou de classes Tu crées des instances d'un objet. Comme l'a dit Feust, de même que tu peux initialiser une structure (à moins de la déclarer directement) en C à l'aide d'un malloc, tu dois initialiser une classe avec un New qui fait appel à une méthode spéciale qui porte le nom de ta classe et qui sert de constructeur (initialisation des variables, etc.). Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 28 novembre 2009 Share Posté(e) 28 novembre 2009 en gros t'as oublié malistedeapp[1].name=new app(); ou new app("bla bla","lol","mdr"); Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kuiplo Posté(e) 28 novembre 2009 Share Posté(e) 28 novembre 2009 Tu as pour le moment seulement alloué ton tableau de classe, il faut maintenant initialiser chacun des éléments de ton tableau (Il faut que tu ai prélablement défini ton constructeur dans ta classe "app") : app [] malistedeapp=new app[nombre]; for (int i = 0; i < nombre; i++) malistedeapp[i] = new app (); malistedeapp[1].name = "toto"; ps : Les tableaux en java commencent à 0. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
feust Posté(e) 29 novembre 2009 Share Posté(e) 29 novembre 2009 (modifié) j'aurai fait ainsi moi je di pas que c'est juste public class app (String img,String nom,String version,String description,String auteur,public String prix(sa c moche un prix en String)) { String appimg=img; String appnom=nom; String appversion=version; String appdescription=description; String appauteur=auteur; String appprix=prix; } public String getAppname { return appname; } public void setAppname(String name) { appname= name: } a quelque chose pret bien sur pis un conseil met toi au arraylist regarde un peu,la facilité une fois que ta compris,sa marche du tonerre Modifié 29 novembre 2009 par feust Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 29 novembre 2009 Auteur Share Posté(e) 29 novembre 2009 Ok merci pour les infos. En fait, je pensais que ces 2 commandes voulaient dire la même chose: app [] malistedeapp=new app[nombre]; et for (int i = 0; i < nombre; i++) malistedeapp[i] = new app (); Don comme le dis kuiplo, je vais essayer avec ces 2 commandes à la suite. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.