gpt4 book ai didi

Java-默认构造函数,具有一个数组类型的初始化变量并在 main 中调用它

转载 作者:行者123 更新时间:2023-12-01 09:00:04 25 4
gpt4 key购买 nike

我有一个程序,它有一个 Ant 类,其中:

默认构造函数将实例变量 queens 初始化为 1女王名为“贝丝”和 colonySize到 100,000。

定义的构造函数接受两个参数并初始化相应的实例变量。

方法display ,以格式显示有关 Ant 的信息如下:

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);
}
}

当我在 main 中调用它时,问题就出现了。

主类

public class MainAnts {

public static void main(String[] args) {
// TODO Auto-generated method stub

Ant obj= new Ant();
obj.display();

}

}

我收到一个空指针异常(因为我认为这不是在 main 中调用 display 方法的正确方法,因为它有一个数组变量)。

最佳答案

问题是你从来没有初始化你的皇后数组。如果你想使用固定长度的普通数组,那么:

    public Ant() {
queens = new String[1000] //or whatever size you want
queens[0] = "Beth";
colonySize = 100000;
}

或者您可能想使用 ArrayList:

    private List<String> queens;
private String colour = "black";
private int colonySize;


public Ant() {
queens = new ArrayList<>();
queens.add("Beth");
colonySize = 100000;
}
public void display() {
System.out.println("Queen 1: " + this.queens.get(0));
System.out.println("Colour of the ants: " + colour);
System.out.println("The size of the colony: " + this.colonySize);
}

关于Java-默认构造函数,具有一个数组类型的初始化变量并在 main 中调用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41749191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com