如何访问存储在数组中的对象实例的非静态方法?

时间:2017-05-03 20:00:50

标签: java arrays static-methods instanceof instances

我正在为我的一个班级创建一个模拟,但我遇到了一些麻烦。在这里寻找一些方向+任何提示。

到目前为止,我有两个课程,我正在寻求实施其他一些课程。目前,我希望能够访问我的其他类中存储的数组中对象的点(x和y坐标)。

2 个答案:

答案 0 :(得分:0)

  1. 您无法在生态系统阵列中存储每种动物类型的新实例,因为这些动物类型不是生态系统。为此,您需要将其他类扩展为Ecosystem。
  2. 我建议您将Ecosystem作为一个界面,并从其他类中实现它。在接口中定义getRow()getColumn()并在子类中覆盖它,这样每个数组元素都可以访问它并返回它们的特定实现。
  3. public static void printCarnivore()是错误的。你不能在内部类中使用这种静态方法。

答案 1 :(得分:-1)

这应该有用。

if (ecosystem[i][j] instanceof Carnivore) {
    Carnivore.printCarnivore();
    System.out.print(" | ");
    int x = (Carnivore) ecosystem[i][j].getCarnivoreRow();
    int y = (Carnivore) ecosystem[i][j].getCarnivoreColumn();
    System.out.println("Coordinates: (" + x + ", " + y + ")" )
}