1 初始化块
类的五大成员:成员变量、成员方法、构造器、初始化块、内部类
1.1 分类
a 实例化初始化块
每次实例化对象都会自动执行(类似构造器)
{
//代码
}
功能:对类中多个构造器中相同内容的复用性提高
特点:构造器之前执行
如果有继承:
先执行父类构造器,再执行子类构造器
如果存在初始化块,父类初始化块-负类构造器-子类初始化块-子类构造器
b 类初始化块
在类加载(只加载一次)的时候自动执行的一个代码块,只执行一次
static{
}
特点:在类加载时只执行一次
用途:该类一旦被使用就执行一段代码
如果有继承:
先加载父类再加载子类,先执行父类初始化代码块,再执行子类代码块
c 其他情况
存在父子关系,都有类初始化块与实例初始化块
如果new子类对象
执行顺序:父类初始化块,子类初始化块,父类实例初始化块,父类构造器,子类实例初始化块,子类构造器
2 抽象类
前提:父类中所有子类都对父类中方法进行重写,则父类中方法需要进行抽象实现。
方式:
1. 使用abstract抽象符
2. 将大括号删除,分号结尾
3. public abstract void eat();
将类变为抽象类:
1. 使用abstract抽象符号修饰类
特点:
1. 抽象方法存在的类,必须是抽象类
2. 子类继承抽象类时,必须实现抽象类中的抽象方法
重写:父类有方法体,子类覆盖父类方法体
实现:父类没有方法体,子类第一次指定方法体
3. 抽象类中可以有0-n个抽象方法或普通方法。
4. 如果子类无法实现抽象类抽象方法,可以让下一类实现,但子类必须变为抽象类
5. 抽象类无法实例化对象
6. 抽象类存在构造器,用于初始化子类对象的父类空间。
应用:作为模板工具类,一部分确定,一部分不确定
3 权限修饰符号
4 debug调试
让程序单步运行
1 打断点(程序暂停位置)
2 采用debug模式运行
主要关注程序位置和变量监控区
3 执行快捷键
F8 单步运行
F9 找下一个断点,如果没有下一个断点,一直结束为止。
F7 强制进入方法
shift+F8 退出方法