static关键字
可以修饰属性、方法
属性:被static修饰的属性叫静态属性/类属性/类变量,未被static修饰的属性叫非静态属性
特点:
1.所有对象共享一份,一个对象对其修改,其他的调用也会受到影响,类级别
2.静态属性随着类的加载而加载(只加载一次),先于对象的创建,非静态属性,随着对象的创建而产生
3.可以使用类名直接调用
被static修饰的方法:静态方法、类方法
1.随着类的加载而加载,只加载一次
2.可以使用类名直接调用
3.在静态方法中,只能调用静态的成员,非静态的方法中,可以调用静态和非静态的成员
//先后产生的问题
4.静态方法中,不会出现this
静态只能调用静态的原因是:先后产生问题
静态的属性和方法都是随着类的加载而加载,先于对象的创建,而非静态的属性和方法
都是要先创建对象后,才能用它们。
所以静态的,可以类名直接调用,而非静态的, 要对象调用。非静态的方法中也可以调用静态成员,因为静态成员在一开始就已经加载了。
所以,静态方法中,没有this,因为this有关的对象还没有被加载出来,静态在前。
所以,这一切都是时臣(辰)的锅