static静态关键字
静态的概述
不创建对象直接调用方法。可以通过static关键字来实现
特点
1、被static修饰的成员变量属于类,而不属于这个类的某个对象;也就是说当某个对象对static成员变量进行了改变时,其余对象中的被static修改的成员变量的值也会随之改变;
2、被static修饰的成员变量可以直接通过类访问
格式:
类名.静态成员变量名
类名.静态成员方法名
3、静态的加载优于对象,随着的类的加载而加载;
静态的注意事项
1、静态成员只能访问静态成员
2、非静态成员都可以访问
静态的优缺点
优点:
1、对于共享的数据单独开辟内存,不用每一个对象都储存一份
2、可以被类名直接调用
3、静态成员变量可以直接通过类名调用
缺点:
有局限性,静态只能调用静态
类变量与实例变量
类变量:静态变量
定义位置:类中方法区外
内存区域:方法区
生命周期:随着类的加载而加载
特点:无论创建多少对象,类变量仅在方法区内,且只有一份
实例变量:非静态变量
定义位置:类中方法区外
内存区域:堆中
生命周期:随着方法的加载而加载
特点:每创建一个对象,堆中的方法就有一份实例变量。
代码块
局部代码
以{}划定的代码区域,只需要关注作用域
构造代码块
优先于构造方法执行,用于执行所有对象均需要的初始化动作,每创建以对象均会执行一次构造代码块
静态代码块
优先于构造代码块执行,静态代码块只执行一次;
this super
this:当前对象的引用
调用子类成员变量
调用子类成员放法
调用子类其他构造方法
super:子类对象的父类引用
调用父类的成员变量
调用父类的构造方法
在子类构造中调用父类的构造方法