这是我的代码:public class MyClass { int x; MyClass m1 = new MyClass(); m1.x=10;}为什么 line 会m1.x=10;导致错误?
3 回答
BIG阳
TA贡献1859条经验 获得超6个赞
如果你想为变量 x 赋值,初始化它的行应该放在下面的特定方法中。你打算这样做吗?
public class MyClass
{
int x;
public static void main(String[] args)
{
MyClass m1 = new MyClass();
m1.x = 10;
}
}
一只萌萌小番薯
TA贡献1795条经验 获得超7个赞
使用实例初始化块:
public class MyClass {
int x; // define x variable
MyClass m1 = new MyClass(); // initialize m1 variable
{
m1.x=10; // assign 10 to m1.x (this is assignment statement)
}
}
在块外,您只能定义和初始化变量,而不是赋值语句。
一只甜甜圈
TA贡献1836条经验 获得超5个赞
您的代码中有两个错误:
MyClass m1 = new MyClass();
这是一个无限递归。
m1.x=10;
这是一个语句,因此应该在方法或构造函数中,而不是在类主体中。
添加回答
举报
0/150
提交
取消