JAVA编程思想笔记 第一章 对象导论

1. 对象导论

1.1 基本概念

对象的定义

  • 万物皆为对象;

  • 程序时对象的集合,它们通过发送消息来告知彼此所要做的;

  • 每个对象都有自己的由其他对象所构成的存储;

  • 每个对象都有其类型;

  • 某一特定类型的所有对象都可以接收同样的消息。

  • 每个对象都提供服务

接口

接口确定了对某一特定对象所能发出的请求。(eg. 灯的开关请求)

被隐藏的具体实现/访问控制

  • public:元素对任何人可用
  • private:除类型创建者和类型内部方法之外任何人不得访问的元素
  • protect:基于private,但继承的类型可以访问元素
  • 包访问权限:同一个包内的类型可以访问

1.2 复用

组合/聚合

最简单的服用就是直接使用类的对象,或者将类的对象置于新类之中,通常置于新类中的对象都是private的。

  • 组合:使用现有的类合成新的类
  • 聚合:如果组合是动态发生的称为聚合
  • 组合经常被视为 has-a 关系(eg. 汽车<--引擎)。
  • 优先考虑组合而不是继承,因为更加简单灵活。

继承

基于已有的类,复制并添加修改副本后得到新类,而不是重复创建相似的类。继承描述了类型之间的相似性。

  • 单根继承结构:万物起源 Object基类
  • 源类/基类/超类/父类 ==> 导出类/子类/继承类
  • 继承类不仅包括现类型的所有成员,还复制了基类的接口,所有发送给基类的消息都可以发送给子类
  • 差异性
    • 直接添加新的方法 (is-like-a)
    • Overriding(覆盖),改变现有基类的方法的行为 (is-a)

多态

  • 泛型
  • 后期绑定
  • 向上转型:将子类堪称它的基类的过程,安全

容器

  • 问题:无法确定解决某特定问题需要多少对象,对象存活多久等问题
  • eg. list map set
  • 容器的选择:
    • 不同的容器提供了不同的接口和行为
    • 不同的容器对不同的操作有着不同的效率
      • ArrayList 随机访问是固定开销
      • LinkedList 插入删除开销低于ArrayList

参数化类型

  • 向下转型:不安全的,需要知道确切的类型信息
    ArrayList<Shape> shapes = new ArrayList<Shape>();

1.3 对象的创建和生命周期

1.4 异常处理机制

1.5 并发编程

  • 共享资源问题,上锁机制
posted @ 2020-03-13 21:37  希恩布劳戈  阅读(112)  评论(0)    收藏  举报