第五章:
为什么要有包的存在:
1.防止类名重复
2.大型项目业务复杂时、使用包用来实现划分多个子模块、保证项目目录结构清晰、提高系统可维护性
包冲突:
import com.br.uceeckel.utl.*;import java.util.*;使用Vector v = new Vector()编译器会报告一个错误、强迫我们明确的声明、修改 java.utl.Vector v = new java.util.Vector()
java访问修饰符:允许、不允许
访问权限 | 类 | 包 | 子类 | 其他包 | 备注 |
public | 允许 | 允许 | 允许 | 允许 | |
protected | 允许 | 允许 | 允许 | 不允许 | |
default | 允许 | 允许 | 不允许 | 不允许 | |
private | 允许 | 不允许 | 不允许 | 不允许 |
接口与实现
第六章
继承:第一步创建基类、第二步创建子类通过extends继承父类、子类继承父类所有成员及方法、通过super调用父类成员
合成:为进行合成,我们只需在新类里简单地置入对象句柄即可
类合成的典型应用:
属于关系是用继承来表达的、而包含关系是用合成来表达的; 汽车对象属于车辆的类型、汽车对象包含发动机对象、门对象
上塑造型:
final三种应用场合:
数据、方法、类