我为类Plane
定义了一个对象数组。像这样:
Plane[] terminalOne = new Plane[] {
new Plane(1, "Madrid", "Ryanair", "Airbus A300", "05.00"),
new Plane(3, "Riga", "AirBaltic", "Boeing 737", "05.30")
//ETC..
};
我正在试图弄清楚如何操纵/获取此数组中的信息,例如显示对象。我试过System.out.println(terminalOne);
返回[Lairport.Plane;@322ba3e4
(机场是我的包裹)我不明白这意味着什么,但我认为它返回了第一个对象?我试图让它更具可读性,在我定义Plane类和对象构造函数的文件中,我添加了这个函数:
public void displayPlane() // display plane
{
System.out.println();
System.out.print("{" + flightID + "," + destination + "," + airline + "," + aircraft + "," + time + "}");
System.out.println();
}
以{.., .., .., .., ..}
的形式显示有关对象的信息,并尝试将其作为terminalOne.displayPlane();
应用于我的主文件中但是遇到编译器错误,说“找不到符号,符号:方法displayPlane(),location :变量terminalOne类型为Plane []“
我使用LinkedLists,我在一个单独的文件中定义了这些方法,以及搜索,删除等方法。我可以为数组执行类似的操作,如果是这样,那么正确的方法是什么?
答案 0 :(得分:2)
terminalOne
是一个数组,而不是单个平面。你可以使用:
for (Plane plane : terminalOne) {
plane.displayPlane();
}
...但我个人会考虑在toString()
覆盖Plane
代替:
@Override public String toString() {
return "{" + flightID + "," + destination + "," + airline + "," +
aircraft + "," + time + "}";
}
然后:
for (Plane plane : terminalOne) {
System.out.println(plane);
}
答案 1 :(得分:0)
Jon建议您使用displayPlane()
实施替换toString()
方法
然后你可以打电话给
System.out.println("terminalOne = " + Arrays.toString(terminalOne));
查看阵列的所有元素。
输出“连接”的结果,然后你可以这样做:
:
List<Plane> concatList = new ArrayList<Plane>();
Collections.addAll(concatList, terminalOne);
Collections.addAll(concatList, terminalTwo);
// add many more terminals and then print
System.out.println(concatList);
仅使用标准java库