2009-06-09 7 views

Répondre

2

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)

+2

Vérifiez votre code - les vars sont privés, mais vous y accédez directement. –

+0

mon esprit était un gâchis là-bas. –

+1

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

-1

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?

+0

Vérifiez votre code - les éléments du tableau ne sont pas initialisés via le constructeur. –

+0

Même en supposant que les méthodes get sont supposées être publiques, c'est un code bizarre. –

+0

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

Questions connexes