以下是示例代码:
class TestAO
{
int[] x;
public TestAO ()
{
this.x = new int[5] ;
for (int i = 0; i<x.length; i++)
x[i] = i;
}
public static void main (String[]arg)
{
TestAO a = new TestAO ();
System.out.println (a) ;
TestAO c = new TestAO () ;
c.x[3] = 35 ;
TestAO[] Z = new TestAO[3] ;
Z[0] = a ;
Z[1] = (TestAO b = new TestAO()) ;
Z[2] = c ;
}
}
当我尝试编译时,我在第Z[1]
行收到一条错误消息,内容如下:
TestAO.java:22: ')' expected
Z[1] = (TestAO b = new TestAO()) ;
^
我在这里要做的是创建一个对象TestAO的实例,我希望在该索引中的索引中分配该索引,而不是像我一样在数组外创建对象的实例做了a
。
这是合法的吗?我只是制作一些我看不到的语法错误(从而导致错误信息)或者我正在尝试做的事情是不能完成的?
编辑:
关于马克的答案,这是我的后续问题:
是否有更短的方法为对象数组中的对象的实例变量赋值,而不是:(不写任何特殊的构造函数)
Z[1] = new TestAO() ;
Z[1].x[4] = 80085 ;
答案 0 :(得分:4)
比你想象的容易:
Z[1] = new TestAO();
答案 1 :(得分:1)
像这样声明变量是不可能的。只需写“Z [1] = new TestAO();”如果你想要另一个参考“TestAO b = Z [1]”;
答案 2 :(得分:0)
你在这里真正做的是将作业的结果分配给Z [1]。 Java中赋值的返回类型是boolean,所以你的方式不起作用。
尝试:
Z[1] = new TestAO();
答案 3 :(得分:0)
试试这个:
Z[1] = new TestAO() ;