在学习java的过程中有很多人不清楚static用法,现在我们来分析总结一下java中static的用法:
首先我们应该了解在c语言中static表示“全局”或者“静态”的意思,用static修饰的变量时全局的变量,但是在java中没有全局变量的概念。
在java中被static修饰的成员只有一份,这是什么意思呢,就是说类在创建对象的时候就会把类中的成员拷贝一份,但是用static修饰的成员就不会被拷贝,只有唯一的一份。如果在一个对象中改变用static修饰的变量,在其他类中也会跟着改变。Static修饰的成员是独立于类的。
static修饰的成员变量和成员方法习惯上称为静态变量和静态方法,可以直接通过类名来访问,访问语法为:
类名.静态方法名(参数列表...)
类名.静态变量名
关于static的使用可以分为三部分:
1:修饰属性
2:修饰方法
3:修饰初始化块
·Static属性:在内存中只有一个拷贝,可用类名直接访问,当然也可以通过对象来访问(但是这是不推荐的)。
·Static方法:大家还记得main方法吗?它就是用static修饰的。原因就是,如果一个类她定义了main方法的话,那么她的main方法会在这个类的构造函数运行之前被调用。 由于main方法运行的时候尚未在JVM里生成相应对象(构造函数未被执行),所以要声明为static。(需要注意的是不能用this,super来使用静态方法)
·Static初始化模块:这个模块要先于类执行,换句话说就最先执行的。 |
|