本来就是先声明后赋值激迅呢,噢,我懂你的意思了,你是大概这个意滚铅并思:
public class MyClass{
public static int a;
public MyClass() {
a = 12;
}
}
//然后你这样做就会报错吧,因为在这里的全局变量a可以直接通过类名MyClass.a来访问,不一定要new这个类,所以a不一定被赋值了,所以会大迹报错,所以要在声明的同时并且赋值
public static int a = 12;
java中全局变量为什么不能先声明后赋值:
因为慎稿i=3这是猛孝粗赋值语句,不能单独出现在方法或{}以外的地方。
public clss Test{
int i;
{i = 3;} //写在{}里枝镇就可以了
}
变量在全局可以不赋值,因为有默认值
在局部不可以不赋值,因为没有默认值
全局变量为最终变量,而最终变量只能在初始化时赋值,以后就不能再赋值,也不能改变它的值
声明之后没有赋值可能没有近你的for循环 或者if判断中!所以造成全局没有赋值