OOP的主要特征

抽象(abstract)

▶ 忽略掉一个对象或者实体的细节而只关注其本质特征的过程

▶ 简化功能与格式

▶ 帮助用户与对象交互

 

封装(encapsulation)

▶ 隐藏数据和实现

▶ 提供公共方法供用户调用功能

▶ 对象的两种视图

    —外部视图:对象能做的工作

    —内部视图:对象如何完成工作

 

继承(inheritance)

▶ 通过存在的类型定义新类型的机制

▶ 通常在两个类型之间存在“is a”或者“kind of”这样的关系(如苹果“is a”水果)

▶ 通过继承可实现代码重用,另外继承也是多态的基础

 

多态(polymorphism)

▶ 一个名称,多种形式

▶ 基于继承的多态

▶ 调用方法时根据所给对象的不同选择不同的处理方式

    如,Football.play():使用脚来完成

            Basketball.play():使用手来完成

    给出一个具体的足球或篮球,用户自动知道该使用谁的方式去执行play() 

 

关联(association)

▶ 对象之间交互时的一种引用方式

▶ 当一个对象通过对另一个对象的引用去使用另一个对象的服务或操作时,两个对象之间就产生了关联

    如Person使用Computer,Person与Computer之间就存在了关联关系

 

聚合(aggregation)

▶ 关联关系的一种,一个对象成为另外一个对象的组成部分

▶ 是一种关系较强的关联

▶ 在两个对象之间存在“has a”这样的关系,一个对象作为另外一个对象的属性存在,在外部对象被生产时,可由客户端指定与其关联的内部对象

    如,汽车与轮胎,轮胎作为汽车的一个组成部分,它和汽车可以分别生产以后装配起来使用,但汽车可以换新轮胎,轮胎也可以卸下来给其他汽车使用。

 

组合(composition)

▶ 当一个对象包含另一个对象时,外部对象负责管理内部对象的生命周期情况

▶ 关联关系中最为强烈的一种

▶ 内部对象的创建由外部对象自己控制

▶ 外部对象不存在时,内部对象也不能存在(如,电视机与显示器)

 

内聚与耦合(cohension & coupling)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值