Java Tableau (Array) Objet
Fermé
thapipo
Messages postés
12
Date d'inscription
mercredi 6 juin 2012
Statut
Membre
Dernière intervention
21 février 2014
-
15 déc. 2012 à 19:33
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 15 déc. 2012 à 22:30
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 15 déc. 2012 à 22:30
A voir également:
- Java Tableau (Array) Objet
- Tableau croisé dynamique - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Tableau ascii - Guide
- Tableau word - Guide
6 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
15 déc. 2012 à 19:47
15 déc. 2012 à 19:47
Je ne suis pas sûr d'avoir tout compris, mais pourquoi tu passes par j1, tu pourrais directement faire :
for (int i=0; i<joueurTab.length; i++) { nom = ... ville= ... pays = ... joueurTab[i] = new JoueurDeSoccer(nom, ville,pays); }
thapipo
Messages postés
12
Date d'inscription
mercredi 6 juin 2012
Statut
Membre
Dernière intervention
21 février 2014
2
Modifié par thapipo le 15/12/2012 à 20:40
Modifié par thapipo le 15/12/2012 à 20:40
Oui tu as très bien compris !, j'ai oublié de le mentionné par contre que c'est vrai que cette méthode fonctionne bien !jy avait pensé. Le seul problème c'est que cette méthode exige que l'on rentre nos joueur immédiatement d'un coup , mais j'ai besoin que les joueurs soient tous inscrits en même temps dans le sens :
Si par exemple je rentre les données de mon premier joueur et que je termine.. mon programme revient vers un MENU PRINCIPAL, j'ai une fonction 2 qui fait : AFFICHER LES JOUEURS DE L'ÉQUIPE. donc celle-ci va ensuite lire toutes les cases non NULL de mon tableau et me les afficher donc une fois J1 entré, mon fonction 2 m'afficher mon J1 avec tous ses attributs, ensuite jai ma fonction AJOUTER UN JOUEUR. qui m'offre la possibilité d'aller RAJOUTER un joueur dans et ainsi de suite.
C'est là que je suis coincé, il faut que j'ai la possibilité d'ajouter un joueur. Je termine, jai l'option d'afficher avec ma fonction 2, le joueur que j'ai rentré qui serait dans ma CASE 0 de mon tableau.
Ensuite je peux retourner ajouter un autre joueur qui lui ferait une 2e instance de JoueurDeSoccer ( en théorie "J2") qui par la suite, logiquement, la case [1] de mon tableau irait pointer vers cette nouvelle instance de mon nouveau joueur.
Si par exemple je rentre les données de mon premier joueur et que je termine.. mon programme revient vers un MENU PRINCIPAL, j'ai une fonction 2 qui fait : AFFICHER LES JOUEURS DE L'ÉQUIPE. donc celle-ci va ensuite lire toutes les cases non NULL de mon tableau et me les afficher donc une fois J1 entré, mon fonction 2 m'afficher mon J1 avec tous ses attributs, ensuite jai ma fonction AJOUTER UN JOUEUR. qui m'offre la possibilité d'aller RAJOUTER un joueur dans et ainsi de suite.
C'est là que je suis coincé, il faut que j'ai la possibilité d'ajouter un joueur. Je termine, jai l'option d'afficher avec ma fonction 2, le joueur que j'ai rentré qui serait dans ma CASE 0 de mon tableau.
Ensuite je peux retourner ajouter un autre joueur qui lui ferait une 2e instance de JoueurDeSoccer ( en théorie "J2") qui par la suite, logiquement, la case [1] de mon tableau irait pointer vers cette nouvelle instance de mon nouveau joueur.
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
15 déc. 2012 à 20:43
15 déc. 2012 à 20:43
Je ne vois pas vraiment le problème.
j1 est une variable, mais sa valeur n'est qu'une référence à l'objet, si tu copies cette référence dans la case [0] du tableau, tu peux écraser la référence dans j1 avec une autre valeur (la future case [1]) sans pour autant affecter la référence dans la case [0].
Peut-être que tu devrais mettre un exemple pour voir ce qui coince, là je ne vois pas...
j1 est une variable, mais sa valeur n'est qu'une référence à l'objet, si tu copies cette référence dans la case [0] du tableau, tu peux écraser la référence dans j1 avec une autre valeur (la future case [1]) sans pour autant affecter la référence dans la case [0].
Peut-être que tu devrais mettre un exemple pour voir ce qui coince, là je ne vois pas...
thapipo
Messages postés
12
Date d'inscription
mercredi 6 juin 2012
Statut
Membre
Dernière intervention
21 février 2014
2
Modifié par thapipo le 15/12/2012 à 22:23
Modifié par thapipo le 15/12/2012 à 22:23
public static void menuPrincipal () {
// pour laffichage du menu
System.out.println("\n\nMenu principal");
System.out.println("==============");
System.out.println("1 - AJOUTER UN JOUEUR");
System.out.println("2 - MODIFIER UN JOUEUR");
System.out.println("3 - AFFICHER TOUS LES JOUEURS DE LA TABLE");
}
public static void ajouterUnJoueur () {
String nom;
String ville;
String pays;
System.out.println (" AJOUTER UN JOUEUR");
System.out.println (" ----------------");
System.out.print (" Entrez le nom : : ");
nom = Clavier.lireString();
System.out.print (" Entrez une ville : ");
ville = Clavier.lireString();
System.out.print (" Entrez le pays) : ");
pays = Clavier.lireString();
JoueurDeSoccer j1 = new JoueurDeSoccer (nom, ville, pays);
joueurTab [0] = j1
System.out.println (" JOUEUR AJOUTÉ!");
public static JoueurDeSocer [] joueurTab = new JoueurDeSoccer [ 15 ];
// déclaration de mon TABLEAU;
public static void main (String[] params) {
ici il y a l'affichage de mon menu principal
menuPrincipal ()
si je choisi 2 :
jexécute :
ajouterUnJoueur ()
pour revenir au menu ;
menuPrincipal ()
ensuite si je fais ma fonction afficher joueurs actifs.
afficherJoueur(); ** qui est décris ci-dessous.
public static void afficherJoueur(JoueurDeSoccer){
System.out.println ("\n LISTER LES JOUEUR");
System.out.println (" -----------------");
Nom Pays Ville
---------------- ------------------ -----------------
(ICI il y aurait J1) nom , pays, ville
String nomJoueur = joueurTab[0].getNomJoueur();
String villeJoueur = joueurTab[0].getNom();
String paysJoueur = joueurTab[0].getNas();
System.out.println(nomJoueur + " " + paysJoueur + " " + villeJoueur + " ");
menuPrincipal ()
je sais pas si ca peut aider ou si c'est clair ! mais comme je disais, en ce moment, tout marche correctement si on ajoute le 1er joueur,
aussitôt qu'on ajoute le 2e c,est la que cela devient problématique !
// pour laffichage du menu
System.out.println("\n\nMenu principal");
System.out.println("==============");
System.out.println("1 - AJOUTER UN JOUEUR");
System.out.println("2 - MODIFIER UN JOUEUR");
System.out.println("3 - AFFICHER TOUS LES JOUEURS DE LA TABLE");
}
public static void ajouterUnJoueur () {
String nom;
String ville;
String pays;
System.out.println (" AJOUTER UN JOUEUR");
System.out.println (" ----------------");
System.out.print (" Entrez le nom : : ");
nom = Clavier.lireString();
System.out.print (" Entrez une ville : ");
ville = Clavier.lireString();
System.out.print (" Entrez le pays) : ");
pays = Clavier.lireString();
JoueurDeSoccer j1 = new JoueurDeSoccer (nom, ville, pays);
joueurTab [0] = j1
System.out.println (" JOUEUR AJOUTÉ!");
public static JoueurDeSocer [] joueurTab = new JoueurDeSoccer [ 15 ];
// déclaration de mon TABLEAU;
public static void main (String[] params) {
ici il y a l'affichage de mon menu principal
menuPrincipal ()
si je choisi 2 :
jexécute :
ajouterUnJoueur ()
pour revenir au menu ;
menuPrincipal ()
ensuite si je fais ma fonction afficher joueurs actifs.
afficherJoueur(); ** qui est décris ci-dessous.
public static void afficherJoueur(JoueurDeSoccer){
System.out.println ("\n LISTER LES JOUEUR");
System.out.println (" -----------------");
Nom Pays Ville
---------------- ------------------ -----------------
(ICI il y aurait J1) nom , pays, ville
String nomJoueur = joueurTab[0].getNomJoueur();
String villeJoueur = joueurTab[0].getNom();
String paysJoueur = joueurTab[0].getNas();
System.out.println(nomJoueur + " " + paysJoueur + " " + villeJoueur + " ");
menuPrincipal ()
je sais pas si ca peut aider ou si c'est clair ! mais comme je disais, en ce moment, tout marche correctement si on ajoute le 1er joueur,
aussitôt qu'on ajoute le 2e c,est la que cela devient problématique !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
15 déc. 2012 à 22:15
15 déc. 2012 à 22:15
C'est une impression ou tu utilises toujours joueurTab[0], quand tu ajoutes un joueur il faudrait augmenter cet indice pour avoir joueurTab[1], [2], etc.
Le problème c'est que nul part dans ton code je ne vois où est déclaré joueurTab, en particulier on ne connait pas sa taille.
Tu parlais de "lire toutes les cases non NULL de mon tableau", il faudrait que fasses ça dans ton code, en particulier pour l'ajout d'un joueur sur la première case non nulle disponible...
Le problème c'est que nul part dans ton code je ne vois où est déclaré joueurTab, en particulier on ne connait pas sa taille.
Tu parlais de "lire toutes les cases non NULL de mon tableau", il faudrait que fasses ça dans ton code, en particulier pour l'ajout d'un joueur sur la première case non nulle disponible...
thapipo
Messages postés
12
Date d'inscription
mercredi 6 juin 2012
Statut
Membre
Dernière intervention
21 février 2014
2
15 déc. 2012 à 22:23
15 déc. 2012 à 22:23
Ma déclaration de tableau est juste au dessus du MAIN.
pour l'ajout des joueurs, ma logique est que lorsque le tableau est créer,
l'utilisateur rentre les données, une fois les données saisies ( qui ne sont pas encore lues par le tableau), je dois aller dire à mon tableau "la première case NULL que tu as, tu pointes ce que je viens d'entrer") et ainsi de suite.
J'essaie juste de trouver le moyen de lui dire !
pour l'ajout des joueurs, ma logique est que lorsque le tableau est créer,
l'utilisateur rentre les données, une fois les données saisies ( qui ne sont pas encore lues par le tableau), je dois aller dire à mon tableau "la première case NULL que tu as, tu pointes ce que je viens d'entrer") et ainsi de suite.
J'essaie juste de trouver le moyen de lui dire !
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
15 déc. 2012 à 22:30
15 déc. 2012 à 22:30
Il te faut une boucle for pour parcourir ton tableau :
for (int n=0; n<joueurTab; n++) { if (joueurTab[n]==null) { joueurTab[n] = new JoueurDeSoccer(nom,ville,pays); break; } }