猿问

为什么不能在类中初始化实例变量?

这是我的代码:


public class MyClass {

    int x;

    MyClass m1 = new MyClass();

    m1.x=10;

}

为什么 line 会m1.x=10;导致错误?


一只斗牛犬
浏览 114回答 3
3回答

BIG阳

如果你想为变量 x 赋值,初始化它的行应该放在下面的特定方法中。你打算这样做吗?public class MyClass{    int x;      public static void main(String[] args)    {        MyClass m1 = new MyClass();        m1.x = 10;    }}

一只萌萌小番薯

使用实例初始化块: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)    }}在块外,您只能定义和初始化变量,而不是赋值语句。

一只甜甜圈

您的代码中有两个错误:MyClass m1 = new MyClass();这是一个无限递归。m1.x=10;这是一个语句,因此应该在方法或构造函数中,而不是在类主体中。
随时随地看视频慕课网APP

相关分类

Java
我要回答