0

Cards[] temp = new Cards[13]; Cards が 52 個のオブジェクトを持つクラスであるこの配列があります。私の知る限り、このステートメントは Cards データ型の 13 個のオブジェクトを保持する配列を作成します。値を入れる前に知りたいのですが、この配列の値は NULL のガベージですか? 私は書いた後に意味します

Cards[] temp = new Cards[13];

実際の値を入れる前に、このステートメントの後に存在する要素は何ですか。Null またはゴミのいずれかです。詳細な説明は、コンパイル時に 13 オブジェクトのメモリが動的に配列またはカードに割り当てられます。コンパイル時にそのメモリ内の値が何であるかを知りたいです。NULLまたはいくつかのゴミを枯らしますか?

4

4 に答える 4

5

null に初期化されます。ゴミにはなりません。

また、配列は 13 個のオブジェクトではなく、13 個の参照を保持します。質問の最後の部分がわかりませんでした。

于 2013-10-24T12:01:01.480 に答える
2

Java では、すべてのオブジェクト参照はinitialized as null、値が指定されていない場合です。

Cards[] temp = new Cards[13];

この行の後、temp[0],temp [1] ....temp[12]値は null に割り当てられます。

以下のようなオブジェクトを作成する必要があります。

for(int i=0;i<temp.length;i++){
      temp = new Cards();
}
于 2013-10-24T12:01:59.757 に答える
1

あなたが言ったとき

Cards[] temp = new Cards[13];

これは、13 個の参照を含む temp という名前の配列を作成したことを意味します。これらの参照は、13 個の Cards オブジェクトを指すことができます。また、個々のカードに 52 個のインスタンス変数がある場合、それらはインスタンス変数であるため、すべて null に設定されます。あなたの質問がよく理解できたと思います。

于 2013-10-24T12:08:59.863 に答える
0

公式ドキュメントを参照してください: http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

セクション「デフォルト値」:

byte    0

short   0

int     0

long    0L

float   0.0f

double  0.0d

char    '\u0000'

String (or any object)      null

boolean     false

つまり、配列内の各オブジェクトのデフォルト値はnull. 他の言語のようなガベージ値はありませんnull

自分で試すことができます:

for (int i = 0; i < temp.length; i++) {
    System.out.println(temp[i]);
}
于 2013-10-24T12:18:10.987 に答える