设计模式复习——面向对象基础

99 阅读2分钟

类和对象及其特征

概念

  • 对象:实体,用一组可识别的特性和行为来标识
  • 类:具有相同的属性和功能的对象的抽象集合
  • 属性:适合于以字段的方式使用方法调用的场合,其实也是字段

面向对象三大特性

封装

  • 含义:对象包含所有需要操作的信息,不必依赖其他对象来完成自己的操作
  • 作用:
    • 减少耦合
    • 类内部的实现可以自由修改
    • 类具有清晰的对外接口

继承

  • 含义:代表一种is-a的关系

  • 子类和父类的关系:

    • 子类拥有父类非private的属性和功能
    • 子类具有自己的属性和功能
    • 子类可以自己实现父类的功能(重写)
  • public,protected,private

    • public:对其他类公开
    • protected:继承时子类对基类有完全访问权,其他类没有
    • private:其他类都不可访问

多态

  • 含义:不同的对象可以执行相同的动作,但要通过它们自己的实现代码来执行
  • 子类以父类的身份出现,如Animal cat = new Cat();
  • 重载,重构和重写要区分:重载是同一个类对相同方法名的不同实现,可能是属性值不同;重写是子类对父类方法的重新实现,重构是尽显方法内容的重新实现

抽象类

  • 包含抽象方法的类,可以有一些成员的实现

接口

  • 不提供任何成员的执行方式
  • 区分什么时候用抽象类,什么时候用接口
    • 抽象类是对类的抽象,接口是对行为的抽象
    • 如果行为跨越不同类的对象,用接口;如果是一些相似的类对象,用继承抽象类
    • 从产生的角度:抽象类是子类中发现的共同的东西,泛化出父类;而接口是不知子类的存在,预先定义

集合

  • 含义:用于数据存储和检索的专用类,提供对堆栈、队列、列表、哈希表的支持
  • ArrayList不是类型安全的,会把值类型装箱为Object对象。装箱和拆箱会需要进行大量的计算。
  • 建议使用泛型集合:指定ArrayList的封装类型,如ArrayList