IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

Initialiser un tableau


Sujet :

Collection et Stream Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Initialiser un tableau
    Bonjour,
    je débute en java et je souhaiterai avoir un petit peu d''aide.
    Voila mon problème
    je veux creer une classe Jeu qui a comme champs un tableau de carte;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public class Jeu {
    	Carte[] mon_jeu;
     
    	}
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public class Carte {
    	private String figure;
    	private String couleur;
    	}
    Le problème est que je n 'arrive pas a accéder a partir de la classe Jeu aux données de mon tableau. Avoir une carte de mon tableau de la classe Jeu.
    Merci de votre aide

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 165
    Points : 205
    Points
    205
    Par défaut
    Salut,

    met des getter/setter dans ta classe Carte.
    Après tu auras juste à faire un Carte[i].getFigure() ou Carte[i].getCouleur() pour accéder aux données de ta carte.
    Ou alors déclare tes 2 champs de la classe Carte comme étant public pour y accéder directement (ce qui est déconseillé, cf. principe d'encapsulation)

  3. #3
    Membre averti

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2010
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 246
    Points : 402
    Points
    402
    Par défaut
    Alors je pense voir le problème...

    premièrement, pour accéder aux objets de ton tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Carte uneCarte = mon_jeu[0] // suivant la carte que tu veux.
    Cela va te retourner un objet de type "Carte". Cependant, tu as déclaré les champs "couleur" et "figure" comme "private". tu ne peux donc pas y accéder en dehors de ta classe Carte.

    Deux solutions sont possibles :

    - tu peux changer "private" en "public" afin de pouvoir accéder aux champs de ton objet Carte via :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    string couleur = uneCarte.couleur;
    string figure = uneCarte.figure;
    Cette méthode n'est pas recommandé... il vaut mieux adopter la méthode 2, à savoir, déclarer des accesseurs (les fameux get() et set() ).

    Dans ta classe "Carte", tu rajoutera donc les méthodes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public void setFigure(string figure){
        this.figure = figure;
    }
    public void setCouleur(string couleur){
        this.couleur = couleur;
    }
    public string getCouleur(){
        return this.couleur;
    }
    public string getFigure(){
        return this.figure;
    }
    Dans ta classe main (ou ailleurs), tu pourra maintenant faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    string couleur = uneCarte.getCouleur();
    string figure = uneCarte.getFigure();
     
    //et de la même manière tu pourra changer les valeurs de tes champs si tu en a besoin :
     
    uneCarte.setCouleur("rouge");
    uneCarte.setFigure("valet");
    A noter que si tu n'as aucun besoin de changer les valeurs de la couleur ou de la figure, les "set()" ne serviront à rien et tu peux donc les ignorer.


    EDIT : grillé par eatherquake... c'est long d'écrire dis donc
    C'est en aidant les autres qu'on en apprend beaucoup soi-même

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 165
    Points : 205
    Points
    205
    Par défaut
    michon > ouais, mais toi tu met tout le code, donc c'est mieux

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci de votre aide. Maintenant mon probleme est que je narrive pas a remplir mon tableau dans la classe Jeu. En fait, mon objet Jeu reste a null. Jai limpression que si je veux ajouter une valeur il me dit quil ne connait pas encore lobjet.Pouvez vous me montrer comment remplir ce tableau.
    Merci

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public class Jeu {
    Carte[] mon_jeu;
     
      public Jeu(int nombreCartes){
        mon_jeu = new Carte[nombreCartes]; // on crée le tableau
        for (int i=0;i<nombreCartes;i++)
          mon_jeu[i]=new Carte(); // on y met des valeurs
      }
    }
     
    //////////////
     
    Jeu leJeu = new Jeu(52); // nouveau jeu de 52 cartes

  7. #7
    Membre confirmé Avatar de javaNavCha
    Homme Profil pro
    EKG Group
    Inscrit en
    Juillet 2009
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Tunisie

    Informations professionnelles :
    Activité : EKG Group
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 311
    Points : 631
    Points
    631
    Par défaut
    Tu pourras le redéfinir, il aura les nouvelles paramètres affectés
    On essaie
    et ça marchera

    Mon site
    Ma page

Discussions similaires

  1. Réponses: 35
    Dernier message: 14/02/2006, 19h57
  2. Réponses: 7
    Dernier message: 31/01/2006, 23h34
  3. initialiser un tableau 2D dans le main
    Par miminou dans le forum C++
    Réponses: 5
    Dernier message: 20/12/2005, 11h35
  4. [LG] Jeu mémory : initialisation de tableau
    Par DarkLords dans le forum Langage
    Réponses: 1
    Dernier message: 19/10/2005, 16h13
  5. Problème d'initialisation variable tableau
    Par HeZiX dans le forum Langage
    Réponses: 3
    Dernier message: 08/06/2005, 17h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo