java中的静态变量初始化
考虑以下代码:java中的静态变量初始化,java,class,static,Java,Class,Static,考虑以下代码: 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();
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();
}
}
为什么这会产生错误,即使我已经在h上面声明了j。
错误是因为您将静态声明与实例变量声明混合在一起(从错误消息中可以清楚地看出,不能对非静态字段j进行静态引用)。将第一次初始化更改为
static int j = 10;
你的代码编译得很好。接受错误并用谷歌搜索。接受错误并用谷歌搜索。