Java,填充数组和继承

时间:2010-04-06 02:45:19

标签: java arrays inheritance

我认为我正在使用我的Java数组运行继承概念墙。我是Java的新手,所以请告诉我,如果我把事情颠倒过来。从本质上讲,我想做三件事:

  1. 使用我的Runners类的属性创建一个runnersArray。
  2. 使用GenerateObjects类的GenerateObjects方法填充我的runnersArray。
  3. 在我的评估课程的评估方法中访问我填充的runnersArray的内容。
  4. 问题似乎是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]*/;
         }
    }
    

1 个答案:

答案 0 :(得分:2)

你在代码示例中的方式,runnersArray是一个package-private(因为它没有任何访问说明符,默认是package-private)Runners类的实例变量。因此,您不能只从GenerateObject和Evaluating类中访问它。

如果你想让runnersArray成为一个全局可见的对象,那么它可能应该是一个公共的静态变量。

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 */;
    }
}

希望这有帮助。