请考虑以下代码:
public class TestClass
{
int j=10;
static int h=j;
TestClass()
{
System.out.println(h);
}
public static void main(String[] args)
{
TestClass obj= new TestClass();
}
}
为什么即使我已经将j声明为高于h,这也会产生错误。
答案 0 :(得分:1)
错误是因为您正在将静态声明与实例变量声明混合(从错误消息中可以清楚地看出无法对非静态字段j进行静态引用)。将第一个初始化更改为
static int j = 10;
并且您的代码编译得很好。