static关键字

来源:互联网 发布:河南省的大数据谷是 编辑:程序博客网 时间:2024/05/16 11:01

使用关键字static修饰的变量和方法被称为静态变量(也叫类变量)和静态方法(也叫类方法)。和没有被static修饰的成员变量和方法与类的某个对象相关联不同,使用关键字static修饰的变量和方法是与类关联的,其值和方法会被类的所有实例共享。即使没有创建该类的对象,也可以使用类名来调用静态变量和静态方法。

使用static关键字修饰的变量称为静态变量,也叫类变量。该静态变量会被类所有的实例共享,不管在类中创建多少个对象,它们所引用的都是同一个内存区域的值。它是属于类的,不依赖于某个对象。除了可通过创建对象来访问以外,还可以使用类名.静态变量的方式调用静态变量。

使用static关键字修饰的方法称为类方法,也叫静态方法。静态方法同样会被类的所有实例共享。除了可以通过创建对象来访问外,也可以通过类名直接访问。类名.方法名(参数列表)。

在java中,静态方法只能访问该类的静态变量和静态方法,不能直接调用该类的非静态变量和方法。main()方法就是一个被static修饰的静态方法。因此在main()方法中直接调用的变量和方法也应该是静态的变量和方法。但是,非静态方法是可以调用该类中的静态变量和方法的。

静态方法是属于类的方法,不属于类的对象,不需要使用创建对象的方式也可以调用静态方法,所以,静态方法中不存在this。 在实际应用中,应该使用类名来调用方法。

关键字static除了可以修饰变量和方法外,还可以在类的内部,方法的外部使用static初始化一个代码段,这种初始化方式成为静态初始化。静态初始化代码段只在类对象第一次载入时初始化一次。与非静态的初始化方式不同的是,静态初始化需要在大括号前加入一个static关键字。其初始化方式如下:

public class A{

static{

}

}

这里要说明的一点是,一般初始化的都是静态变量。

这里在补充一下java的初始化顺序

1:当一个类在使用new创建一个对象时,java虚拟机会去找这个类并对这个类进行装载。

2:当类首次载入时,java会对所有用static修饰的静态代码进行初始化,包括静态变量,静态方法和使用static的静态初始块。

3:进行非静态的变量和方法的初始化操作。

4:执行构造方法。

注意:如果该类有父类,则父类也会先被载入。父类的静态代码将先被初始化,在初始化子类的静态代码。然后初始化父类的非静态代码和构造方法,最后执行的是子类的非静态代码和构造方法。

0 0
原创粉丝点击