public test{
static int a ;
static void demo(int b){
this.a = b; --->能取到
test.a = b; --->取不到
}
}
public test{
static int a ;
void demo(int b){
this.a = b; //效果一样
test.a = b; //能取到
}
}
why?
静态变量(static 所修饰的变量),是在程序运行之前,也就是编译阶段,分配内存。
也就是说,必须要有对象才能用this,而对象的产生,必须在程序运行时,通过new产生,所以静态方法不能使用this关键字取到类变量。