短い答え:はい、getcard
は実際にはPlayer
クラスのいくつかのプライベートフィールドにそのパラメータを置きます。
答え:Javaでは、プリミティブと参照の2つしかありません。プリミティブは数値型、文字、ブール値です。他のすべてはオブジェクトであり、すべてのオブジェクトは参照です。だから、あなたは
Foo f = new Foo();
を書くときタイプFoo
の新しいオブジェクトが作成され、(ガベージコレクション)ヒープ、あなたはまた、として考えることができます参照、上の「ポインタ」に置かれていますスタック。 Java言語では、その参照を調べる実際の方法はほとんどありません(たとえば、ポインタまたはlong
にキャストできません)ので、不透明なハンドルと考えることができます。
だから、あなたが書いたときに
player.getcard(deck.draw())
コール
deck.draw()
はタイプCard
のオブジェクトへの参照を返し、そのオブジェクトはplayer.getcard
メソッドに渡されます。 Player
クラスは
public class Player {
private List<Card> cards;
// ...
public void getcard(Card card) {
cards.add(card);
}
}
のようなものに見える場合すると、その後、cards
プライベートフィールドにアクセスPlayer
内のメソッドへの以降の呼び出しはdeck.draw()
の戻り値がcards
に追加されていることがわかります。
はい、できます。あなたはそれを試しましたか?あなたができないなら、それらのメソッドの定義を見るのを助けるでしょう。 – ggreiner
はい、確かにこれを行うことができます。 –
はい................ – Nishant