как я понимаю данное исключение говорит о том, что объект не хранит в себе данные, и поэтому при выводе на экран информации, выдает исключение, но я вроде как записываю в переменную значение, и данное исключение не должно появляться, рассудите пожалуйста, тут два класса с наследованием
public class Main extends Field {
public static void main(String[] args) {
new Field().initMap();
new Field().printMap();
}
}
второй класс
public class Field {
protected final int SIZE = 3;
protected char[][] map;
protected final char DOT_EMPTY = '*';
protected void initMap(){
map = new char[SIZE][SIZE];
for(int i = 0; i<SIZE; i++){
for(int j=0; j < SIZE; j++ ){
map[i][j] = DOT_EMPTY;
}
}
}
protected void printMap(){
for(int i = 0; i<= SIZE; i++){
System.out.print(i + " ");
}
System.out.println();
for(int i =0; i <SIZE; i++){
System.out.print((i + 1) + " ");
for(int j = 0; j < SIZE; j++){
System.out.print(map[i][j] + " ");
}
System.out.println();
}
System.out.println();
}
}
жалуется на строку кода System.out.print(map[i][j] + " "); в классе Field
У вас в двух разных объектах происходит действие:
new Field().initMap(); -- создаете новый объект и в нем заполняется его mapnew Field().printMap(); -- создаете новый объект и в нем обращаетесь к его map, а она пуста, т.к. initMap() не был вызван для негоПравильно так:
public class Main extends Field {
public static void main(String[] args) {
Field field = new Field();
field.initMap();
field.printMap();
}
}
В начало метода printMap() можете добавить проверку на null:
protected void printMap(){
if(map == null) {
System.err.println("Map is empty"); //удалить, если вывод ошибки не требуется
return;
}
for(int i = 0; i <= SIZE; i++){
System.out.print(i + " ");
}
System.out.println();
for(int i = 0; i < SIZE; i++){
System.out.print((i + 1) + " ");
for(int j = 0; j < SIZE; j++){
System.out.print(map[i][j] + " ");
}
System.out.println();
}
System.out.println();
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости