Explication sur l'utilisation d'une classe dans un tableau
Bonjour à toutes et à tous,
Dans mon application de Nav, j'ai besoin d'un tableau de valeurs de types différents. J'ai donc créé une classe regroupant ces valeurs :
Code:
1 2 3 4 5 6 7 8
| public class PTS {
public static String UTM_Z;
public static double UTM_N;
public static double UTM_E;
public static double Alti;
public static String Date;
public static int NoIcon;
} |
J’instancie et remplis mon tableau avec des données GPS :
Code:
1 2 3 4 5 6 7
| PTS Tbl [] = new PTS [NbPts]; // NbPts = nombre de points dans le tableau
for (int i = 0; i < NbPts; i++) {
Tbl[i].UTM_E = GPS.UTM_E;
Tbl[i].UTM_N = GPS.UTM_N;
Tbl[i].UTM_Z = GPS.UTM_Z;
Tbl[i].Alti = Double.parseDouble(Str.substring(47, 52)); // Altitude
} |
et là, je m'attendais à un plantage magnifique. Et bien non, en utilisant un "Toast", je lisais bien des valeurs dans mon tableau.
Je m'attendais à un plantage car à chaque valeur du tableau, j'utilisais la classe "PTS" et non une instance nouvelle (pour chaque point du tableau) de cette classe. J'ai rajouté une instanciation pour chaque valeur du tableau ... ce qui n'a rien changé au résultat.
Code:
1 2 3 4 5 6 7 8
| PTS Tbl [] = new PTS [NbPts]; // NbPts = nombre de points dans le tableau
for (int i = 0; i < NbPts; i++) {
Tbl[i] = new PTS(); // instanciation de la classe pour chaque point
Tbl[i].UTM_E = GPS.UTM_E;
Tbl[i].UTM_N = GPS.UTM_N;
Tbl[i].UTM_Z = GPS.UTM_Z;
Tbl[i].Alti = Double.parseDouble(Str.substring(47, 52)); // Altitude
} |
J'en ai déduit que l'instantiacion du tableau faisait en même temps NbPts instanciations de ma classe PTS. Vrai, Faux ?
Merci pour vos éclaircissements.
Pierre