static变量和public变量有什么区别?
书上说声明static变量实际上就是声明public变量,但如果把原来声明的static变量改为public变量,再在static方法中调用的话就会报错.
请问应该怎样理解static和public呢?有什么区别?以及适用的场合.谢谢大家!
class Teststatic{
public int a = 3; //这里改为public就报错
static int b;
static void meth(int x){
System.out.println("x="+x);
System.out.println("a="+a);
System.out.println("b="+b*a);
}
static{
System.out.println("初始化!");
//b=a*4;
}
}
class Teststaticmain{
public static void main(String args[]){
Teststatic.b=5;
Teststatic.meth(42);
Teststatic ts = new Teststatic();
ts.meth(42);
Teststatic.meth(42);
}
}