面向对象的基本概念
对象
客观世界中的事物都是对象(Object):物理对象,逻辑对象
属性
描述对象的静态特征
操作
描述对象的动态特征
类
指具有相同属性和操作的一组对象的集合。它描述的不是单个对象,而是一类对象的共同特征。
例如:
学籍管理系统中可以定义“学生”类,而“张三”、“李明”、“王娟”这些学生就是属于该类的对象,或者叫类的实例;
她们都具有该类的属性和操作,但每个对象的属性值可以各不相同。
消息和通信
对象具有自治性和独立性,它们之间通过消息(Message)进行通信。
发送消息的对象叫客户,接收消息的对象叫服务器。
消息包含:请求的服务(操作)名,输入参数,输出参数。
关系
聚合(aggregation):一个对象是另一个对象的组成部分,也叫“部分—整体”关系。
如:“学生”和“班级”的关系等。
依赖(dependency):一个对象对另一个对象存在依赖关系,且后者的改变会影响到前者。
如:“借书证”对象依赖于某个“学生”对象,当“学生”不存在了,相应的“借书证”也应被销毁。
泛化(generalization):对象所属类之间的“一般—特殊”关系,特殊类表示对一般类内涵的细化。
如:“学生”类可以进一步细化为“本科生”和“研究生”类。
一般关联(association):对象之间的关联关系,主要指服务关系。
如:“教师”和“学生”之间的教学关系。
多重继承
同时具有多个类的属性,如鸭嘴兽既有鸟的特征,又有哺乳动物的特征;在职研究生既有学生的身份,同时又有在职的身份等。
多态性
指同一事物在不同条件下表现出不同形态。如发送消息的对象并不一定知道接收消息的对象属于哪一类;消息被收到后,接收消息的不同类型对象可以作出不同解释,执行不同操作,从而产生不同结果。如“选课”操作。
组件
指可以单独开发、测试和部署的软件模块。它可以只有一个类,也可以包含多个类。
接口
对组件服务的抽象描述。它是一种抽象数据类型,描述的是功能的“契约”,而不考虑与实现有关的任何操作。