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 :

Tableau, méthode et gros soucis


Sujet :

Collection et Stream Java

  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2010
    Messages : 11
    Points : 9
    Points
    9
    Par défaut Tableau, méthode et gros soucis
    Bonjour à vous;

    Le titre étais pour vous appâter, le souci n'est pas si gros que ça mais me bloque depuis le début de l'après midi.
    Je débute sur Java bien évidemment...

    Voila mon soucis:
    Je créé une classe pour instancier des objets qui ne sont rien d'autre qu'un tableau.
    Et je veux faire une méthode pour lire une valeur dans ce tableau, l'indice de la valeur est entré en argument. Enfin voila le code, je vous serais reconnaissant de me dire où j'ai faux. je n'ai pas d'erreur à la compilation mais une exception est levée.

    Un grand grand merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    public class Aleat {
     
    	private int tableau[];
    //----------------CONSTRUCTEUR-------------------
     
    	public Aleat(){//Constructeur par defaut
    		int tableau [] = null;	
    	}
     
    	public Aleat (int n, int lim){//Constructeur d'initialisation
    		int i;
    		int tableau [] = new int [n];
    		for (i=0; i<n; i++){
    			tableau [i] = (int) (Math.random()*(lim+1));
    		}
    		System.out.println ("Création d'un objet Aleat");
    	}
    //----------------Methodes---------------------------
     
    	public void getValeur (int n){
    		System.out.println ("La valeur "+n+" est :" +tableau[n]);
    	}
     
    }

  2. #2
    Membre expérimenté Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Points : 1 540
    Points
    1 540
    Par défaut
    C'est normal. Tu utilises 2 tableau...

    ->Un tableau déclaré comme attribut de ta classe (que tu ne remplis jamais)
    Et un tableau "temporaire" que tu remplis dans le constructeur.

    Solution : fusionner les 2 tableaux. c.a.d. : remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public Aleat(){//Constructeur par defaut
    		int tableau [] = null;	
    	}
     
    	public Aleat (int n, int lim){//Constructeur d'initialisation
    		int i;
    		int tableau [] = new int [n];
    		for (i=0; i<n; i++){
    			tableau [i] = (int) (Math.random()*(lim+1));
    		}
    		System.out.println ("Création d'un objet Aleat");
    	}
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public Aleat(){//Constructeur par defaut
    		tableau = null;	
    	}
     
    	public Aleat (int n, int lim){//Constructeur d'initialisation
    		int i;
    		tableau = new int [n];
    		for (i=0; i<n; i++){
    			tableau [i] = (int) (Math.random()*(lim+1));
    		}
    		System.out.println ("Création d'un objet Aleat");
    	}
    Il était une fois [...] Et ils vécurent heureux et eurent beaucoup d'enfants!

  3. #3
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2010
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Rooohhhh...
    Merci beaucoup ça marche et il suffisait d'enlever un int.

    En gros quand j'écris ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     int tableau [] = new int [n];
    Ca créé un nouveau tableau? Alors qu'il faut pas créé un nouveau tableau mais garder celui qui est déclaré en attribut de classe? et donc enlever le int??

    Merci en tout cas

  4. #4
    Membre expérimenté Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Points : 1 540
    Points
    1 540
    Par défaut
    Ca créé un nouveau tableau?
    Oui ça crée un nouveau tableau de int qui aura le même nom que le tableau déclaré comme attributs de classe.
    Mais qui sera supprimer lorsque tu sortiras du "block" dans le lequel tu la créé. Lorsque tu auras fini le constructeur dans ton cas.
    Alors qu'il faut pas créé un nouveau tableau mais garder celui qui est déclaré en attribut de classe?
    exactement
    pour rappel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //Création de tableau d'entier avec 5 cases
    int[] tableau = new int[5];
     
     
    //Ou alors...
     
     
    int[] tableau;
    //...
    tableau = new int[5];
    Il était une fois [...] Et ils vécurent heureux et eurent beaucoup d'enfants!

  5. #5
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    Par défaut
    J'ajouterais aussi que la norme en Java est de mettre les [] après le type et non après le nom de la variable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int[] tableau; // Bien
    int tableau[]; // Pas bien
    C'est n'est qu'une convention, mais autant prendre les bonnes habitudes dès le début

  6. #6
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2010
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Merci pour vos aides.
    Une balise résolu de plus à ton actif.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gros souci de 1px environ sur un tableau avec image
    Par gus02 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 18
    Dernier message: 26/05/2008, 11h10
  2. interface à concevoir toute simple et gros soucis
    Par skystef dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 02/02/2006, 17h31
  3. [Visual Studio 2003] J'ai un très gros souci !
    Par bart64 dans le forum EDI/Outils
    Réponses: 2
    Dernier message: 18/11/2005, 16h01
  4. [C#][Visual C# Express] Gros souci avec Excel
    Par poullos dans le forum EDI/Outils
    Réponses: 7
    Dernier message: 18/11/2005, 14h15
  5. Gros soucis avec pgaccess et postgresql
    Par Missvan dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 13/04/2004, 17h16

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