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

原文地址:https://www.cnblogs.com/lipijin/p/3106933.html