我认为我的 Java 数组在继承概念上遇到了障碍。我是 Java 的新手,所以请告诉我是否有颠倒的东西。本质上,我想做三件事:
- 使用我的 Runners 类的属性创建一个 runnersArray。
- 使用我的 GenerateObjects 类的 GenerateObjects 方法填充我的 runnersArray。
- 在我的评估类的评估方法中访问我填充的 runnersArray 的内容。
问题似乎是 runnersArray 对上面步骤 2 和 3 中的方法不可见,但它们的类(由于设计原因)不能继承或扩展 Runners 类。
提前感谢您的任何建议。
这里有一些代码片段展示了我正在尝试做的事情:
public class Runners extends Party {
Runners[] runnersArray = new Runners[5];
}
和
public class GenerateObject extends /* certain parent class */ {
public GenerateObject (int arrayNum) {
runnersArray[arrayNum] = /* certain Runners attributes */;
}
}
和
public class Evaluating extends /*certain parent class*/ {
public Evaluating (int arrayNum) {
System.out.println(/* String cast attribute of runnersArray[arrayNum]*/;
}
}
最佳答案
在代码示例中,runnersArray 是 Runners 类的 package-private
(因为它没有任何访问说明符,默认为 package-private)实例变量。因此,您不能只从 GenerateObject 和 Evaluating 类中访问它。
如果你想让 runnersArray 成为一个全局可见的对象,那么也许它应该是一个公共(public)静态变量。
public class Runners extends Party {
public static Runners[] runnersArray = new Runners[5];
}
然后你可以像这样从其他类访问它:
public class GenerateObject extends /* certain parent class */ {
public GenerateObject (int arrayNum) {
Runners.runnersArray[arrayNum] = /* certain Runners attributes */;
}
}
希望这对您有所帮助。
关于Java,填充数组和继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2582376/