Javazh中static的简单理解
java中的static关键字意思是静态的,静态优先于类存在。例子:
public class TestStatic{ int a = 0; public static void main(String args[]){ System.out.println("a = " + a); } }
运行的话,会在输出的那一行报错:无法从静态上下文中引用非静态变量 a。这也就是前面说的,静态优先于类存在,可以这么理解:
在TestStatic类还没有被实例化的时候,就已经有了静态方法main,所以在main中输出变量a时,还没有TestStatic这个类的实例,也就没有TestStatic类中的a属性,当然会报错了。
把上面的a改成static int a = 0;
这样就可以运行了。
静态方法不能引用非静态变量也是一个道理,因为java是纯面向对象的,所以变量不能独立存在,一定要隶属于某个类,所以就又归到上面的情况了,上面的例子中就是在静态方法中引用了非静态的变量,这是非法的。
静态static总结:
1.所有同一个类的实例共享这个属性
2.可以用 类名.静态属性名 来使用 如上例中把a改成静态后,可以这样访问a:Teststatic.a