日期:2014-05-19  浏览次数:20721 次

有关static的问题
为什么“ static int a=1;
static int c=a;
static String b="asdf";
static String d=b;”编译可以通过
而“ int a=1;
static int c=a;
String b="asdf";
static String d=b;”就不可以呢?
简单说静态变量为什么不能接受非静态变量的赋值啊?而可以接受常量的赋值呢?

------解决方案--------------------
static 的变量是在类加载的时候就初始化了,
而“ int a=1;
static int c=a;

也就是说static int c=a; 初始化的时候,int a=1还没有初始化,

就相当于 a 还没有定义,所以报错