static关键字

来源:互联网 发布:易语言钓鱼软件源码 编辑:程序博客网 时间:2024/06/16 19:11

在java语言中static关键字是用来修饰类的成员变量、成员方法和内部类的,使得这些类成员的创建和使用,与类相关而与类的具体实例不相关,因此用static修饰的变量或方法又称为类变量和类方法(静态变量和静态方法)。
静态变量
在成员变量声明是使用static,则变量成为静态变量。静态变量只在系统加载其所在类时分配空间并初始化,并且在创建该类的实例时将不再分配空间,所有的实例将共享类的静态变量。因此静态变量可用来在实例之间进行通信或跟踪该类实例的数目。
java中没有全局变量,但是静态变量是在一个类的所有实例对象中都可以访问的变量,有点类似于其他语言的全局变量。
静态变量只依附于类,而与类的实例对象无关。所以对于不是private类型的静态变量,可以在该类外直接用类名调用,而不是像实例变量那样需要通过实例对象才能访问。
静态方法
在类的成员方法声明中带有static关键字,则该方法就称为类方法或静态方法。静态方法要通过类名而不是通过实例对象访问。
在静态方法的编写与使用时应注意下列问题。
(1)因为静态方法的调用不是通过实例对象进行的,所以在静态方法中没有this指针,不能访问所属类的非静态变量和方法,只能访问方法体内定义的局部变量、自己的参数和静态变量。
(2)子类不能重写父类的静态方法,但是子类中可以声明与父类静态方法相同的方法,从而将父类的静态方法隐藏。另外子类不能把父类的非静态方法重写为静态的。
(3)main()方法是一个静态方法。因为它是程序的入口点,这可以使JVM不创建实例对象就可以运行该方法。因此,如果要在main()方法中访问所在类的成员变量或方法,就必须首先创建相应的实例对象。

原创粉丝点击