Bonjour à tous,

Je débute actuellement en Java et dans la POO étant plus habitué à des langages de dev purement procéduraux.

J'essaye là de lire, une valeur dans un tableau de long sachant que :
- Je ne connais pas la dimension du tableau avant l'appel du constructeur de ma classe
- Pour les besoins de mon application, j'aurais besoin d'affecter des valeurs dans le tableau dans le constructeur de ma classe
- Enfin, je veux qu'une méthode de ma classe soit en mesure de retourner la valeur à partir de l'index du tableau quand elle est appelée (de l’extérieur ou de l'intérieur de la classe)


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
26
 
package fr.monprog;
 
public class Main {
 
	long tableau[]; // J'ai besoin de déclaré un tableau mais je connais 
	                // pas encore la taille dont j'aurais besoin
 
	public static void main(String[] args) {
 
 
		long tableau[] = new long[5]; // Maintenant je connais la taille
 
		tableau[3] = 147;             // Je remplis le tableau avec les valeurs
		System.out.print(tableau[3]+" (la ca marche)\n"); // La ca marche ... mais...
		test(3);                       // Je lis le tableau a l'aide d'une méthode une autre mérhode
 
	}
 
	public void test(int i){
 
		System.out.print(tableau[i]);   // Boum exception :(
 
	}
 
}

Résultat :
147 (la ca marche)
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Cannot make a static reference to the non-static field tableau

at fr.monprog.Main.test(Main.java:21)
at fr.monprog.Main.main(Main.java:15)
Qu'est-ce qui m'échappe ?