类级别的分配与变量声明分开

时间:2018-08-03 05:37:16

标签: java

class Type {
     int s=10;
     s = 10;

     public static void main(String[]args)
     {

       System.out.println(s);

     }
}

此程序在 s = 10 处产生<identifier>预期错误,为什么?但是当我们在主程序中编写(int s; s = 10;)时,它在s = 10时没有产生任何错误,为什么? 在类级别与变量声明分开分配值

2 个答案:

答案 0 :(得分:2)

在Java中,类主体内直接允许的唯一内容是方法,字段声明和块,无表达式或非声明性语句。这些只能在块内添加。

class Type {
    int s;
    { s = 10; }
}

将其放入构造函数中可能是一个更好的主意。

class Type {
    int s;

    public Type() { 
        s = 10; 
    }
}

答案 1 :(得分:0)

  • java的这种限制是如此合乎逻辑。 Java是100%的对象 面向语言,即我们必须先创建才能做任何事情 一个东西。 Java的一切只有通过玩弄才能实现 对象。但是在建立课程时,有些事情 被Java允许: 1)创建构造函数 2)声明变量/引用类型 3)默认变量或引用类型 初始化

    最终,允许使用上述内容,以便 编写它们的类的各种对象实例。

    决定上述内容的实际代码 变量由使用它们的各种方法决定。

    因此,Java在本质上非常严格的原因 在类级别添加任何复杂的语句。希望这个 解释会有所帮助。

另外:

如果您仍然打算添加它们,则可以自由使用静态块。 Java会很乐意在其中允许所有受限制的东西。

快乐编码!