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时没有产生任何错误,为什么?
在类级别与变量声明分开分配值
答案 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会很乐意在其中允许所有受限制的东西。
快乐编码!