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完全采用动态内存分配方式。

    • **在堆栈上创建对象,编译器可以确定对象存活时间,自动销毁。但是在堆上创建对象,编译器对其生命周期一无所知。

**