2016-05-28 24 views
0

私は親クラスStudentの子クラスのオブジェクトへの参照を格納する2次元配列を作成しました。Javaでこの2D配列をnullで初期化するにはどうすればよいですか?

Student[][] a = new Student [5][4]; 

この配列をnullで初期化しますか?どうすればいいのですか?一度にやってみるとどんなトリックですか?また、JavaのBaseクラスの配列に子クラスの参照を格納することが可能かどうかを知りたがっていますか?

すべての値をnullで初期化したいとします。また、いくつかの値が満たされているとしたら、値をnullで上書きしたいとします。それ、どうやったら出来るの?

+0

あなたは何をしたいのですか? 'Student [] [] a = null;'?もっと正確にする必要があります。ネストされたfor-loopsで行われる配列のすべての値をnullで初期化したいと思うかもしれません。 – HopefullyHelpful

答えて

2

デフォルトでは、JAVAは参照オブジェクトをnullで初期化します。

1

3つの方法がありますが、最も重要なものを選択してください。 (コメントから)あなたの目的のために

Student[][] a = null; // reference to a equals null 
Student[][] a = new Student[5][]; // {null, null, null, null, null} 
Student[][] a = new Student[5][5]; // {{null, null, null, null, null}, {...}, ...} 

、あなたはArrays.fill(Object[] a, Object val)を使用することができます。例えば、

for(Student[] array : a) Arrays.fill(array, null); 

または

for(int i = 0; i < a.length; ++i) 
    for(int j = 0; j < a[i].length; ++j) 
     a[i][j] = null; 

はまた、私はJavaで基底クラスの配列で子どもたちのクラスの参照を格納することが可能であるかどうかを知りたいですか?

はい、可能です。アップキャストという名前のプロセス(SubStudentStudentにアップキャストされています)。

a[0][0] = new SubStudent(); 
a[0][1] = new Student(); 
+0

配列をいくつかの値で埋めると、配列全体の値をNULLで上書きしたい場合は、上記の方法も使えますか? –

+0

@HarryLewis、私は – Andrew

+0

@HarryLewisを更新しました。初期化の方法を示しました。配列のすべての値を変更したい場合は、 '配列、fill'または' a [i] [j] = null'を'for 'ループを手動で – Andrew

関連する問題