Java笔记——面向对象

来源:互联网 发布:乐山电视台网络电视 编辑:程序博客网 时间:2024/06/05 04:32
对象
  • 所有的东西都是对象
  • 程序是一组对象的集合
    • 通过消息传递,即发送一个调用请求
  • 每个对象都有自己的存储空间,可容纳其他对象。
    • 或者通过封装,可制作出新型对象。
  • 每个对象都属于一个类型
    • 每个对象都是某个类型的实例
对象的接口
  • 句柄.消息
实现方案的隐藏
  • 接口
    • 规定可对特定对象可发送哪些请求
    • 且必须在某个地方存在代码满足请求
      • 一旦向对象发出一个特定的请求,就会调用那个函数。我们通常将这个过程总结为向对象“发送一条消息”(提出一个请求)。对象的职责就是决定如何对这条消息作出反应(执行相应的代码)。
  • 访问控制
      • 防止程序员误修改内部数据类型的设计思想
      • 允许库设计人员修改内部结构
    • 访问控制关键字
      • “public”(公共)意味着后续的定义任何人均可使用
      • “private”(私有)意味着除您自己、类型的创建者以及那个类型的内部函数成员,其他任何人都不能访问后续的定义信息
      • “friendly ”意味着它只能在这个包装的范围内使用
      • “protected”只是一个继承的类可访问受保护的成员,但不能访问私有成员
方案的重复使用
  • 组织
    • 创建一个成员对象
      • 仅直接使用那个类的对象。但同时也能将那个类的一个对象置入一个新类
      • 新类的成员对象通常设为private
    • 新类由任意数量而类型的其他对象构成,使其达到设计要求
继承:重新使用接口
  • 继承
    • 通过extends关键字实现
  • 将新得的衍生类与原来的基础类区分开
    • 为衍生类添加新函数(功能)
    • 第二个办法是改变基础类一个现有函数的行为
等价与等类关系
  • 等价关系
    • 拥有完全相同的接口
  • 等类关系
    • 为衍生类型加入了新的接口元素
多形对象的互换使用
  • 上溯造型
    • 上溯造型成一种更“通用”的类型
    • e.g:
  • 动态绑定
    • 多形性
      • 根据句柄当时连接的实际类型,会相应地采取正确的操作
抽象的基础类和接口
  • 关键字
    • abstract
      • 有人试图创建抽象类的一个对象,编译器就会阻止他们。这种工具可有效强制实行一种特殊的设计
      • 描述一个尚未实现的方法——作为一个“根”使用
集合和继承器
  • 集合
    • 集、队列、散列表、树、堆栈等等
      • 相应的读写功能
        • 置入集合
          • “推”(Push)、“添加”(Add)或其他类似名字的函数
        • 从集合中取出
          • 矢量(Vector)
            • 那么也许能用索引运算符或函数
          • “继承器”(Iterator)
            • 最开始——枚举
  • 单根结构
    • 所有类最终是否都应从单独一个基础类继承——object
      • 单根结构中的所有对象(比如所有 Java 对象)都可以保证拥有一些特定的功能

集合库与方便使用集合
  • 下溯造型与模板/通用性
    • 为使用这样的一个集合,只需添加指向它的对象句柄即可,以后可以通过句柄重新使用对象。但由于集合只能容纳 Object,所以在我们向集合里添加对象句柄时,它会上溯造型成 Object,这样便丢失了它的身份或者标识信息
      • 下溯造型成一种更“特殊”的类型
    • 参数化类型
清除时的困境:由谁负责清除?
    • 每个对象都要求资源才能“生存”
  • 垃圾收集器
    • 垃圾收集器对效率及灵活性的影响
      • 在堆栈中创建对象是为对象分配存储空间最有效的一种方式
      • 在内存堆(Heap)中创建对象可能要付出昂贵得多的代价
      • 实时程序
        • 比如在一个程序的执行必须保持稳定、连贯的时候必须避免用它
















0 0