1.1
每一个对象在内存中都有一个唯一的地址,new的对象在堆中。
1.3
高内聚、低耦合:模块之间紧密联系,并且保持独立性。
1.4
public、private、protected
- private: 除类型创建者和类型的内部方法之外的任何人都不能访问。
- protected:与 private作用相当,差别仅在于继承的类可以访问 protected成员,但是不能访问private成员。
1.5 组合
组合:由类的对象组合成新类。
- has-a(拥有)关系的时候用组合 。
- 新类的成员对象通常都被声明为 private,使得可以在不干扰现有客户端代码的情况下,修改这些成员,也可以在运行时修改这些成员对象,以实现动态修改程序的行为。
- 通常用于在新类中使用现有类的功能而非接口的情况,即在新类中嵌入现有类的private对象 。
1.6 继承
is-a(是一个)或者like-a(像是一个)的时候用继承 。
有两种方法可以使基类与导出类产生差异:extends关键字、覆盖基类的方法。
判断用组合还是继承,先看看要不要向上转型 。
1.8
所有类继承于Object。
所有对象都在堆上创建(new)。
1.10 生命周期
java完全采用动态内存分配方式。
- **在堆栈上创建对象,编译器可以确定对象存活时间,自动销毁。但是在堆上创建对象,编译器对其生命周期一无所知。
**