2014-01-23 75 views

回答

10

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

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

并以实例化他们,你可以做这样的事情的util类中。

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

当你说MyClass的[] A =新MyClass的[5]。我们不是再次进行对话?所以,当我们说新的Outerclass.innerclass [10];是不是足够分配阵列的内存?为什么我们必须做Outerclass outer = new Outerclass(); inner [0] = outer.new innerclass(); 呢? – Namratha

+1

你已经创建了一个'innerclass'数组。你不需要初始化数组中的每个元素吗?如果它是像'int'这样的基本数据类型,则默认情况下所有元素都将用'0'填充。但在这种情况下,它会是'空'。所有的数组元素都需要初始化。您刚刚声明并初始化了一个数组,但尚未初始化数组中的元素。 – SudoRahul

+0

不会新建Outerclass.innerclass [10];调用外部和内部类的构造函数?如果调用内部类的构造函数,那么我们不需要自己初始化它。 – Namratha

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[0] = innerObject2; 
innerArray[0] = innerObject3; 
相关问题