2011-10-21 17 views
0

クラス内にgetStrategyというメソッドがあり、その配列には次のような配列が必要です。オブジェクト配列をメソッドに渡す方法

public static String getStrategy(Hand[] Hand) 
{ 

} 

が、これは私のクライアントに私の手のオブジェクト

public class Hand 
{ 
    public char side; 
} 

で、私はこのgetStrategy方法を渡すことができる方法を教えてください?

私はこれが正しいSIかどう教えてください。この

Hand[] HandArray = new Hand[1]; 

HandArray.side = 's'; 

MyClassUtil.getStrategy(HandArray); 

を試してみました?

+5

' HandArray.side =「s」をないを示唆している

Hand[] hands = new Hand[1]; Hand hand = new Hand(); hand.side = 's'; hands[0] = hand; MyClassUtil.getStrategy(hands); 

:あなたは、おそらくのような何かをしたいです違う。これ以降の投稿にはコンパイラのエラーメッセージを含めてください。これらのメッセージは通常非常に参考になりますので、理解する方法を学びたいと思うでしょう。お手伝いします。 –

+1

これを論理的に考えると、配列自体に 'side'フィールドがありますか? –

+0

ハンドクラスのコンストラクタを宣言して、 'HandArray [0] = new Hand( 's');'のようなことができ、その変数がサイド変数を初期化する必要があります。 – talnicolas

答えて

5

真ん中のラインを除くすべては問題ありません。現在、中間線は、単一のオブジェクトであるかのように配列にアクセスしようとしています。あなたのコンパイラは、すでにこれがあることを教えてくれます: `;私も強く... publicフィールドを使用して

+0

@Jon Skeetの最後の声明では、彼はcharフィールド 'size' 。同じネームスペースの一部である可能性が高いため、通常はこの方法で保護する方がはるかに適切です。 publicが必要な場合は、private変数_sizeを作成し、sizeをpublic修飾子として使用し、private char _sizeのように定義します。保護されたcharサイズ{public get {return _size; }、{_サイズ=値}}を設定します。 – Michael

+0

「サイド」は、再設定する必要がない限り、「パブリックファイナル」にすることができます。これは 'Hand'コンストラクタが' char'を引数として取った場合にのみ可能です。 –

+0

@ KublaiKhan:それでも実装の詳細(フィールド)が公開されます。私は通常、変数として真の定数( 'public static final'フィールドの不変型)のみを公開します。 –

関連する問題