封装
- 封装就是将相关概念组合成一个单位,然后用一个单独的名字来指代。
- 子程序是早前的例子。
- 对象封装属性和方法。
- 属性只能通过方法调用。
信息隐藏
- 信息隐藏是使用封装来限制某些信息或实现细节的外部可见性。
- 好的设计应该是“黑盒”。
状态保留
- 一个函数结束后,状态会消失。通过方法调用,对象可以保持他们的状态。
- 封装、隐藏、状态保持都是描述了抽象数据类型。
对象识别
- 每个对象都可以通过一种属性被识别并作为一个独立的软件实体。
信息
- 发送对象obj1向目标对象obj2传递要求obj2应用其方法的一种载体。
- 在面向对象中,附加细节本身也是对象。因此,对象可以是发送者、接收者、由另一个对象的变量指向的、由消息中向前或向后传递的参数指向的。
- 信息的类型:为对象更新自身提供信息、请求对象提供信息、请求对象采取操作
类
- 类是用于创建对象的模板。
- 同一个类的对象都有相同的属性和方法,但状态不同。
- 给定类的每个对象都有自己的属性,但方法是共享的。
- 类本身可能有属性和方法,例如静态变量、构造函数。
继承
- 当子类继承父类时,子类已经拥有了父类的属性和方法。
- 通常为一般情况构建一个类,然后特殊化。
多态
- 相同的属性和操作在多个类上定义,可能有不同的实现。
一些小定义
- 动态绑定:要在运行时而不是编译时执行的确切代码段。
- 重写:在子类中重新定义父类的方法。
- 重载:在同一个类中使用相同名称的多个方法。
泛型
- 一个类的构造,以便只在运行时提供它内部使用的一个或多个类。
- 类型必须在编译时指定。
- 例子:策略模式。
类和类图
- 类图包括:名称、属性、方法。
- 对象包括:对象名、类名、属性、方法。
属性
- 是对象的信息。
- 和变量不一样,属性是抽象定义的,独立于内部表示。
- 公共属性可获取可设置。(+)
- 还有private、protected、package local的属性。
方法
- 包括方法名、参数和返回类型。
- 有public、private、protected
- 它们都有个单独的框放gettable/settable属性,所以get/set方法没有显示。
其他概念
- 私有属性和方法不是接口的一部分,所以应该被隐藏。
- “类范围”操作应该加下划线。