隐藏实现的细节 现实世界中的信息隐藏 一电视遥控器 咖啡加热器 程序中的信息隐藏(封装) 提供更加明确的接口(界面) 保护易于变化的部分 通过访问控制来达到隐藏实现细节的目的 抽象让人能从一个层次来观察对象,而封装则限 制你只能从这个层次来观察对象
隐藏实现的细节 • 现实世界中的信息隐藏 – 电视遥控器 – 咖啡加热器 • 程序中的信息隐藏(封装) – 提供更加明确的接口(界面) – 保护易于变化的部分 – 通过访问控制来达到隐藏实现细节的目的 • 抽象让人能从一个层次来观察对象,而封装则限 制你只能从这个层次来观察对象
隐藏实现的细节 例:获取一年的某天是否为假日 class holiday Manager public char[365 days; class Holiday Manager private char[365 days; public boolean isHolidy date datei
隐藏实现的细节 • 例:获取一年的某天是否为假日 class HolidayManager{ public char[365] days; } class HolidayManager{ private char[365] days; public boolean isHolidy(Date date){ …….. } }
实现的重用:组合 创建了一个类并进行了测试后,这个类在 理论上成为了重用的对象 重用性并不像许多人所希望的那样容易达到 重用一个类的最简单的方法是直接使用这 个对象:组合 组合具有很大的灵活性,可以在运行的时 候改变被组合的对象,从而动态改变程序 的行为
实现的重用:组合 • 创建了一个类并进行了测试后,这个类在 理论上成为了重用的对象 – 重用性并不像许多人所希望的那样容易达到 • 重用一个类的最简单的方法是直接使用这 个对象:组合 • 组合具有很大的灵活性,可以在运行的时 候改变被组合的对象,从而动态改变程序 的行为
继承:基本概念 继承是类之间建立的一种关系 ·继承提供了层次化的分类机制 继承是一种重用的机制 但不见得是最好的重用方式 Base Derived
继承:基本概念 • 继承是类之间建立的一种关系。 • 继承提供了层次化的分类机制。 • 继承是一种重用的机制。 但不见得是最好的重用方式
继承:简单继承 继承反映了类型之间的关系 Shape draw 简单地继承一个类,而不做其他任何 erase 事情,派生出的类于其父类具有相同 move 的行为,这一点并不是特别有意义。 getcoloro setcoloro Circl Square Triangle
继承:简单继承 • 继承反映了类型之间的关系 简单地继承一个类,而不做其他任何 事情,派生出的类于其父类具有相同 的行为,这一点并不是特别有意义