在类中,使用 static 修饰符修饰的属性(成员变量)称为静态变量,也可以称为类变量,常量称为静态常量,方法称为静态方法或类方法,它们统称为静态成员,归整个类所有。
注意:
static 修饰的成员变量和方法,从属于类。
普通变量和方法从属于对象。
静态方法不能调用非静态成员,编译会报错。
static关键字的用途
一句话描述就是:方便在没有创建对象的情况下进行调用(方法/变量)。显然,被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。static可以用来修饰类的成员方法、类的成员变量,另外也可以编写static代码块来优化程序性能。
static方法
static方法也成为静态方法,由于静态方法不依赖于任何对象就可以直接访问,因此对于静态方法来说,是没有this的,因为不依附于任何对象,既然都没有对象,就谈不上this了,并且由于此特性,在静态方法中不能访问类的非静态成员变量和非静态方法,因为非静态成员变量和非静态方法都必须依赖于具体的对象才能被调用。
static变量
static变量也称为静态变量,静态变量和非静态变量的区别:静态变量被所有对象共享,在内存中只有一个副本,在类初次加载的时候才会初始化非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。
static块
构造方法用于对象的初始化。静态初始化块,用于类的初始化操作。在静态初始化块中不能直接访问非staic成员。
静态初始化块的作用就是:提升程序性能。
代码:
运行结果:
去掉static后报错
解决方法,实例化类对象对象
运行结果:
标签:初始化,Java,变量,静态,关键字,对象,static,静态方法 From: https://www.cnblogs.com/ysk0904/p/16705481.html