目录
static是什么?
- static是静态的意思,可以用来修饰成员变量、成员方法。
- static修饰成员变量之后称为静态成员变量(类变量),修饰方法之后称为静态方法(类方法)。
- static修饰成员变量表示该成员变量在内存中只存储一份,可以被类的所有对象共享(访问、修改)。
成员变量分类:
加static称为静态变量,不加称为实例变量;静态变量和实例变量统称为成员变量。
静态变量与实例变量的区别
1.存储位置
静态变量:方法区
实例变量:堆内存
2.使用
静态变量只跟类有关,和对象无关;实例变量只跟对象有关。
【一个对象对应一份实例变量;一个类只对应一个静态。】
访问方法:
静态变量: 类名.静态成员变量
实例变量:对象名.实例成员变量
static关键字的使用场景
1.修饰成员变量
被static修饰的成员变量称为静态变量
2.修饰方法
成员方法的分类:
静态成员方法(有static修饰,归属于类),建议用类名访问,也可以用对象访问。
实例成员方法(无static修饰,归属于对象),只能用对象触发访问。
使用场景:
表示对象自己的行为的,且方法中需要访问实例成员的,则该方法必须申明成实例方法。
如果该方法是以执行一个共用功能为目的,则可以申明成静态方法。
静态方法和实例方法的区别
静态方法:不存在对象this
实例方法:可以提供对象this
3.修饰内部类
4.类的初始化顺序
单类:静态变量、静态块、实例变量、实例块、构造函数
继承:父子类
5.Java设计模式:单例模式
static访问注意事项:
- 静态方法只能访问静态的成员,不可以直接访问实例成员。
- 实例方法可以访问静态的成员,也可以访问实例成员。
- 静态方法中是不可以出现this关键字的。
静态方法不可以“直接”访问实例变量或实例方法,但可以新建一个对象,通过“对象.”的方法进行间接访问。