【问题标题】:Create array of inner class object in a different class在不同的类中创建内部类对象数组
【发布时间】:2014-01-23 05:07:02
【问题描述】:

考虑以下嵌套类。

class Outerclass {

    class innerclass {

    }

}

 class util {

 //how to declare an array of innerclass objects here?
}

【问题讨论】:

标签: java class syntax inner-classes nested-class


【解决方案1】:

您可以像这样声明innerclass 对象的数组。

class util {
    Outerclass.innerclass[] inner = new Outerclass.innerclass[10];
}

要实例化它们,您可以在 util 类中执行类似的操作。

void test() {
    Outerclass outer = new Outerclass();
    inner[0] = outer.new innerclass();
}

【讨论】:

  • 当你说 myclass[] a = new myclass[5];我们不会再次初始化,对吗?所以,当我们说 new Outerclass.innerclass[10];这还不足以为数组分配内存吗?为什么我们必须做 Outerclass external = new Outerclass();内部[0] = 外部。新的内部类();再来一次?
  • 您创建了一个innerclass 数组。您不必初始化数组中的每个元素吗?如果它是像int 这样的原始数据类型,则默认情况下所有元素都将使用0 填充。但在这种情况下,它将是null。所有的数组元素都需要初始化。您刚刚声明并初始化了一个数组,但还没有初始化数组中的元素。
  • 不会新建 Outerclass.innerclass[10];调用外部类和内部类的构造函数?如果调用了内部类的构造函数,我们就不用自己初始化了。
【解决方案2】:
OuterClass outerObject = new OuterClass();
OuterClass.InnerClass innerArray[] = new OuterClass.InnerClass[3];
// Creating Objects of Inner Class
OuterClass.InnerClass innerObject1 = outerObject.new InnerClass();
OuterClass.InnerClass innerObject2 = outerObject.new InnerClass();
OuterClass.InnerClass innerObject3 = outerObject.new InnerClass();
// Adding the Objects to the Array
innerArray[0] = innerObject1;
innerArray[1] = innerObject2;
innerArray[2] = innerObject3;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-14
    • 2014-06-11
    相关资源
    最近更新 更多