5.4 隐藏和封装 P130
面向对象三大特征:封装 继承 多态
访问控制符:
private 当前类访问权限,只有在当前类里才能被使用
default 包访问权限,只有在当前包里才能被使用
protected 子类访问权限,在default基础上加上权限:允许其子类访问。
通常该修饰符的出现,就是希望子类来重写该方法
public 公共访问权限
模块设计最求高内聚 低耦合
package
javac -d . hello.java 编译该文件时,会自动根据包名,建立对应的文件夹层次
import
JVM会默认导入java.lang下面的所有类,无需人工显式导入
import static
导入指定类的全部静态成员变量
5.8继承和组合
继承
继承会破坏封装
protected 可以被子类重写,但是不能被其他类自由访问
尽量不要在父类构造器中调用将要被子类重写的方法
想要把某些类 变成最终类,即不能当成父类—->final修饰
Private修饰该类构造器,保证子类无法调用该类的构造器
组合
如果只是出于类复用的目的,那么并不一定使用继承,可以使用组合来实现
继承关系表达一种 是 的关系
组合关系表达一种 有 的关系
5.9 初始化块
初始化块的修饰符,只能有两种情况:没有、static,分别对应普通初始化块和静态初始化块
初始化块的作用与构造器非常相似,但是初始化块总是在构造器之前执行
普通初始化块:new对象时,对对象进行初始化
静态初始化块:类初始化时执行,对类变量进行初始化(static)
类初始化:见18章
普通初始化块、声明实例变量的语句,都可以认为是对象的初始化代码
静态初始化块、声明类变量的语句,都可以认为是类的初始化代码