问题描述
在普通班上,
public class MyClass {
int a =12;
}
工作正常。
但是
public class MyClass {
int a =12;
int b;
b=13;
}
这会导致编译错误。
我知道我试图在不使用该类对象的情况下访问字段,所以我什至尝试了这个->
public class MyClass {
int a =12;
int b;
MyClass m= new MyClass();
m.b=13;
}
但即使这样似乎也不起作用。
我可以接受这样的事实,那就是事情是如何进行和发展的。但是有人知道这背后的逻辑吗?
谢谢。
解决方法
int a = 12;
这是带有初始化的变量声明。
b=13;
这是一项作业;一份声明;它不能是声明的一部分。它必须是构造函数或方法的一部分。
这是Java对象定义的工作方式。
- 变量/字段声明
- 构造函数
- 方法(静态或非静态)
您可以通过以下两种方式之一进行操作:
-
按如下所示使用初始化块:
int b; { b = 13; }
-
在构造函数中执行以下操作:
b = 13;
选中https://docs.oracle.com/javase/tutorial/java/javaOO/initial.html,以了解更多信息。