黑马-许鹏 发表于 2013-5-29 15:30
静态成员先执行,因为静态代码块中有可能要引用静态成员变量。
既然是静态成员先执行,那为何我这样写:
static
{
System.out.println("我是静态代码块"+country);
}
static String country = "china";
系统会报错“错误: 非法前向引用”,按照你的逻辑,静态成员先执行,那么我这两个代码的先后顺序就没有关系,因为静态成员已经执行了,那么静态代码块写在前面,仍然是可以调用country的,可实际结果却并非如此,静态代码块写在country前面系统会报错。
会不会是这样,静态代码块和静态成员变量是相同级别,但是按它们的先后顺序来执行?? |