У меня есть эта программа, которая имеет класс Ant, где:Java- Конструктор по умолчанию с одной инициализирована переменной массива типа и назвав его в основной
конструктор по умолчанию инициализирует переменные экземпляра маток только 1 королева по имени «Beth »И colonySize
до 100 000.
Определенный конструктор принимает два параметра и инициализирует соответствующие переменные экземпляра .
Метод display
, показывает информацию о муравей в формате ниже:
This ant colony has the following queens:
Queen 1: Beth
The colour of the ants: black
The approximate colony size: 100000
Вот что я сделал:
public class Ant {
private String[] queens;
private String colour= "black";
private int colonySize;
public Ant(){
queens[0]= "Beth";
colonySize= 100000;
}
public Ant(String[] queens, int colonySize){
this.queens[0]= queens[0];
this.colonySize= colonySize;
}
public void display(){
System.out.println("Queen 1: "+ this.queens[0]);
System.out.println("Colour of the ants: "+colour);
System.out.println("The size of the colony: "+ this.colonySize);
}
}
к веро что возникает, когда я называю его в основном.
Главный класс
public class MainAnts {
public static void main(String[] args) {
// TODO Auto-generated method stub
Ant obj= new Ant();
obj.display();
}
}
Я получаю исключение Null Pointer (потому что я полагаю, что это не правильный способ вызова метода отображения в основном, так как он имеет переменную массив).
Stepping через код с помощью отладчика может помочь. То, как большинство других людей исправляет свой код. – Paul
Массивы Java фиксируются с размером, который вы объявляете/строите. Твои королевы пусты. Самое простое исправление: 'private String [] queens = {" "};' но посмотрите ответ от Роберта Касперчика для более тщательного ответа. –