面向对象编程思想

1 面向过程和面向对象的区别

面向过程一上来考虑的是步骤的问题,第一步应该做什么,第二步应该做什么,第三步……直到整个事情做完。

面向对象却不应该是这样考虑,面向对象一上来应该考虑三个问题:

(1)这个问题涉及到哪些类哪些对象,即类和对象的设计

(2)这些类应该有哪些属性、哪些方法,即类的属性和方法的设计

(3)这些类哪些是有关系的、存在着哪一些关系,即类的关系考虑


2 类的关系

2.1 关联关系

关联关系是一种弱关系,具体应该表现为一个类的方法涉及到另一个类的对象。如老师教学生,在老师这个类的教的方法里就涉及到了学生这个类的实例;又如司机开车,在司机这个类的驾驶的这个方法里涉及到了车这个类的实力。

2.2 继承关系

继承关系表明类之间的一般和特殊这种关系,可以简单概括为“什么是一种什么”。如幼儿园教师、小学教师和中学教师都继承自教师,它们就可以表诉“幼儿园教师是一种教师”。然而小学语文教师、小学数学教师和小学英语教师都继承自小学教师,也可以这样说“小学语文教师一种小学教师”。

继承关系可以体现为多种继承。像小学教师这样,他可以继承自人这个大类,也可以继承自教师这一个类。

2.3 聚合关系

聚合关系相当于一种整体和部分的关系,可以概括为“什么是什么的一部分”。例如发动机是汽车的一部分,队长是球队的一部分,腿、头和身体是人的一部分。前者是一种距系关系,而后面两者是一种组合关系,队长可以同时兼任两个队的队长(如一个人可以同时担当足球队和篮球队的队长),并非是缺一不可的。而后面两者,发动机只能是这辆车的发动机,而不能是另外一辆车的发动机,这个身体只能是这个人的身体,而不能是另外一个人的身体。所以聚集的关系相对于组合没有那么严谨,组合更加体现的是一种“专属”的感觉。

2.4 实现关系

实现关系是一种接口和具体实现的关系,是一种抽象和具体的关系。例如定义了车这种接口,可以有不同的实现,如自行车可以实现车这个接口、东风车可以实现汽车这个接口、小轿车也可以实现这种接口

2.5 多态关系

同时传入公共接口,但是可以根据实际是什么做其专属的事情。例如定义了司机这个类,该类里有一个驾驶的方法,该方法接收一个“车”的实例,车的类里面有一个启动的方法,每种实现车这个公共接口的类实现这个启动的方法是不一样的,自行车有自行车启动的方法,汽车有汽车启动的方法,东风车有东风车启动的方法,但当它们具体传进司机的驾驶这个方法里,它们都能自己调用自己的启动方法。

3 面向对象编程的目的

Reusable(可复用)

Extendable(可扩展)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值