2016-05-28 4 views
0

Я создал 2-мерный массив, который будет хранить ссылки на объекты дочерних классов родительского класса Student.Как инициализировать этот 2D-массив с нулевым значением в Java?

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

Теперь я хочу, чтобы инициализировать этот массив с null? Как мне это сделать? Любой трюк, чтобы сделать это сразу? Кроме того, я хотел знать, можно ли хранить ссылки класса children в массиве Base-класса в Java?

Я хочу инициализировать все значения с помощью null. Кроме того, предположим, что некоторые значения заполнены, а затем я хочу переписать значения с помощью null. Как мне это сделать?

+0

Можете ли вы привести пример того, что вы хотите сделать? 'Student [] [] a = null;'? Вы должны быть более точными. вы, вероятно, хотите инициализировать все значения в массиве с нулем, что было бы сделано с вложенными for-loops. – HopefullyHelpful

ответ

2

По умолчанию JAVA инициализирует ссылочные объекты с нулевым значением.

1

Существует три способа выбрать наиболее приоритетный для вас.

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?

Да, это возможно. Процесс с названием upcasting (SubStudent взвинчен до Student).

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

, если я заполню массив некоторыми значениями, а затем, если я хочу переписать значения во всем массиве с помощью NULL, то также я могу использовать вышеуказанный метод? –

+0

@HarryLewis, я обновил – Andrew

+0

@HarryLewis, я показал вам способы инициализации, если вы хотите изменить все значения в массиве, вы можете использовать 'Arrays, fill' или' a [i] [j] = null' в 'for' петли вручную – Andrew

Смежные вопросы