Je crée un objet en Java. Un de ses attributs est une référence de la grille - ints x, y & z.Java: meilleur type pour stocker des références de grille
Plutôt que de créer une variable pour chacun, existe-t-il un meilleur moyen de les stocker?
Je crée un objet en Java. Un de ses attributs est une référence de la grille - ints x, y & z.Java: meilleur type pour stocker des références de grille
Plutôt que de créer une variable pour chacun, existe-t-il un meilleur moyen de les stocker?
Créez un enregistrement comme classe, carroyage:
public class GridReference {
public int x;
public int y;
public int z;
}
Vous pouvez instancier comme:
GridReference gridReference = GridReference();
et assigner les valeurs individuelles via:
gridReference.x = 1;
gridReference.y = 0;
gridReference.z = 0;
Accessible via:
gridReference.x;
gridReference.y;
gridReference.z;
Vous pouvez chair la classe vers un objet plus sûr que:
public class GridReference {
private final int _x;
private final int _y;
private final int _z;
public GridReference(int x, int y, int z) {
_x = x;
_y = y;
_z = z;
}
public getX() {
return _x;
}
public getY() {
return _y;
}
public getZ() {
return _z;
}
}
Et instancier comme:
GridReference gridReference = new GridReference(1, 0, 0);
Affectation des valeurs en même temps. Ceux-ci sont accessibles via:
gridReference.getX();
gridReference.getY();
gridReference.getZ();
(. Pour changer les valeurs, vous aurez besoin de réaffecter la référence à une nouvelle carroyage bien)
Vous pouvez utiliser un tableau pour les
class MyClass {
private final int [] gridRef = new int[3];
public MyClass(int x, int y, int z) {
gridRef[0] = x;
gridRef[1] = y;
gridRef[2] = z;
}
public int getX() {
return gridRef[0];
}
public int getY() {
return gridRef[1];
}
public int getZ() {
return gridRef[2];
}
}
Ce serait un accès en lecture seule à la référence de la grille.
Je ne suis pas sûr si c'est "mieux" cependant. Que veux-tu accomplir?
Vérifiez votre code - les éléments du tableau ne sont pas initialisés via le constructeur. –
Même en supposant que les méthodes get sont supposées être publiques, c'est un code bizarre. –
Ils sont maintenant. Eh bien, pour une question étrange, une réponse étrange est dans l'ordre :) Il a juste dit: "Plutôt que de créer une variable pour chacun, y at-il une meilleure façon de les stocker?" – OscarRyz
Vérifiez votre code - les vars sont privés, mais vous y accédez directement. –
mon esprit était un gâchis là-bas. –
La deuxième option est beaucoup mieux. Si vous faites myobject.gridref = a; puis myotherobject.gridref = a; un changement dans myobject.gridref.x = -1; va gâcher dans myotherobject référence de la grille qui n'est pas toujours souhaitable. En utilisant la deuxième approche, cela ne peut pas arriver. – OscarRyz