2009-06-09 7 views

答えて

2

、GridReferenceを記録のようなクラスを作成します。

public class GridReference { 

    public int x; 

    public int y; 

    public int z; 

} 

あなたのようにそれをインスタンス化できます。

GridReference gridReference = GridReference(); 

そして、個々の値を割り当てる経由:

gridReference.x = 1; 
gridReference.y = 0; 
gridReference.z = 0; 

アクセ経由:

gridReference.x; 
gridReference.y; 
gridReference.z; 

あなたはとしてより安全なオブジェクトにクラスアウト肉ができます

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; 
    } 

} 

として、それをインスタンス化します。同時に値を割り当てる

GridReference gridReference = new GridReference(1, 0, 0); 

。これらを介してアクセスすることになります。

gridReference.getX(); 
gridReference.getY(); 
gridReference.getZ(); 

(値を変更するには、しかし新しいGridReferenceへの参照を再割り当てする必要があると思います。)

+2

コードを確認してください - バールはプライベートですが、直接アクセスしています。 –

+0

私の心はそこに混乱していた。 –

+1

2番目の選択肢がはるかに優れています。 myobject.gridref = a;を実行すると、 myotherobject.gridref = a;次に、 myobject.gridref.x = -1の変更。 myotherobjectのグリッドリファレンスではうまくいきません。第2のアプローチを用いることによって、これは起こり得ない。 – OscarRyz

-1

あなたはそれら

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]; 
    } 
} 
のための配列を使用することができます

これは、グリッド参照への読み取り専用アクセスです。

しかし、それが「より良い」かどうかはわかりません。あなたは何を達成したいですか?

+0

コードを確認してください - 配列要素がコンストラクタで初期化されていません。 –

+0

getメソッドがpublicであると仮定していても、それは奇妙なコードです。 –

+0

彼らは今あります。まあ、奇妙な質問のために奇妙な答えがあります:)彼はちょうど言った: "それぞれの変数を作成するよりも、これらを格納する良い方法はありますか? – OscarRyz

関連する問題