在网上搜索了很多论坛后,我现在已经很难解决这个问题了。
我在File A.java中有一个A类和一个嵌套的B类 File C.java中还有另一个C类
现在我在A类中声明了一个对象B数组,但是我既不能访问也不能初始化A类或C类中的数组元素。
public class A{
public B b[] = new B[15]; //compiles
b[0] = new B(); //does not compile
// b[0] = this.new B(); //does not compile either
public class B{
}
}
现在在C类中,如果我执行以下操作:
public class C{
A a = new A(); //compiles
a.b[0] = a.new A.B(); //does not compile
}
有人可以帮忙吗?我想我在尝试访问嵌套实例数组时在语法上做了一些基本错误。谢谢!
答案 0 :(得分:4)
您无需使用A
来访问B
类构造函数。您已经在A
类实例上访问它了。只需将您的陈述更改为:
a.b[0] = a.new B();
<强>参考:强>
当然,该赋值必须在某些方法,构造函数或初始化器中。你不能直接在类中使用语句。与班级A
中的作业相同的问题。
因此,您应该将类C
更改为以下内容:
class C {
A a = new A(); //compiles
{
a.b[0] = a.new B();
}
}
答案 1 :(得分:2)
第二行b[0] = new B();
应该在任何方法中
。喜欢这个
package com.sample;
public class A {
public B[] b = new B[15];
/*
* public A() {
b[0] = new B();
*}
*/
public class B {
}
}
C.java
package com.sample;
public class C {
A a = new A();
public C()
{
A a=new A();
a.b[0]=a.new B();
}
}