Créer un tableau dans constructeur et l'utiliser

Résolu/Fermé
lolocatalan - 25 nov. 2013 à 16:09
 lolocatalan - 26 nov. 2013 à 05:19
Bonjour à tous,
Je suis étudiant en DUT et pour un projet JAVA à rendre, j'ai besoin de créer un tableau d'entiers dans un constructeur.

Le constructeur est sensé saisir le nombre d'éléments maximum que le tableau peut contenir, puis créer le tableau d'entiers. Ce nombre maximal est appelé nbElementsMax.

Mon problème :
Si je crée le tableau int tab[] = new int [nbElementsMax] dans le constructeur, il est inutilisable par les méthodes que je dois appeler par la suite, et pourtant dans le devoir le professeur a bien écrit que le tableau doit être crée dans le constructeur.

Voici le début de mon code pour vous donner une idée :

class tableau
{
public int nbElementsMax;
public int tab[] = new int [nbElementsMax];
public tableau()
{
System.out.println("Entrez le nombre maximum de cases que doit comporter votre tableau");
Scanner nb = new Scanner(System.in);
nbElementsMax = nb.nextInt();
System.out.println("Votre tableau comportera donc " + nbElementsMax + " cases.");
}

Merci d'avance pour vos réponses.
A voir également:

3 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
25 nov. 2013 à 18:10
Dans ton code le tableau n'est pas créé dans le constructeur mais dans le code qui le précède (ce qui ne pourra pas marcher vu que la taille du tableau n'est pas encore connue) il faut que tu fasses ton new int[] dans le constructeur...
0
Nagathael Messages postés 2727 Date d'inscription samedi 2 février 2008 Statut Membre Dernière intervention 6 décembre 2013 258
25 nov. 2013 à 20:07
Voici ce que ton code doit donner:

import java.util.Scanner;

class Tableau //Une classe prend toujours une majuscule!!
{
public int nbElementsMax;
public int tab[];
public Tableau()
{

System.out.println("Entrez le nombre maximum de cases que doit comporter votre tableau");
Scanner nb = new Scanner(System.in);
nbElementsMax = nb.nextInt();
tab = new int [nbElementsMax];
System.out.println("Votre tableau comportera donc " + nbElementsMax + " cases.");
}

public static void main(String[] args){
Tableau monTab=new Tableau();
}
}
0
lolocatalan
26 nov. 2013 à 05:19
Merci beaucoup les gars !
Nagathael ta solution marche nikel c'est exactement ce que je voulais faire mais j'avais pas la syntaxe exacte.

Grand merci !
0