访问控制
public > protected > default > private
// 作用于类
private; // 同一类
default; // 同一包
protected; // 不通包子类
public; // 公共
// 其他
static; // 类属性、类方法
finally; // 类:不能创建子类、方法:不能重写、变量:as常量,必须赋值(或构造赋值)
静态代码块
static{
// 首次使用此类,执行唯一一次
// 在构造方法之前执行
// 初始化
}
方法
1、静态方法
2、实例方法
3、构造方法
1、有参构造,第一行默认调用父类无参构造(初始化顺序)
2、无参构造
3、部分有参等等
JavaBean
JavaBean 是 Java语言编写类的一种标准规范
// 要求类必须是具体的和公共的(public)
// 具有无参数的构造方法(如果有继承关系,默认有无参构造方法)
// 实例属性 私有化
// 提供 set 和 get 方法。(访问私有实例属性)
内部类
// 主要是匿名内部类,复习一波lambda和函数式编程
特性
单继承
// 单继承
// 重写:重写父类方法
// 重载:一个类中方法名字相同但参数不同
构造特性
- 默认提供无参构造方法
- 构造方法第一行隐式调用 super(),初始化父类
- 一定调用父类的无参构造
- 父类有参,子类必须实现有参
- 类似于Python的init
- 调用父类有参,只能在构造方法调用
- super(String name)
- static 不会参与继承
初始化顺序
父类静态变量→子类静态变量→父类非静态变量→父类静态代码块→父类构造函数→子类非静态变量→子类静态代码块→子类构造函数。
MRO
// 就近
Python3: 广度优先