说到面向对象,就要先说说面向过程,面向对象和面向过程对比起来,就好比面向对象是“我要回家”,而面向过程是“我要先坐地铁然后换乘公交车回家”。面向对象关心的是一个事件的结果,而面向过程是如何实现。面向过程的思维的出现要早于面向对象。当一个相同的过程反复出现的时候,伟大的程序员(或者说是懒惰的程序员)就开始思考怎么复用这段相同的过程。当把一个 反复的过程封装并复用的时候,面向对象的思想就出现了。所以面向对象编程的三个要素是封装,继承,和多态。一个对象,它的所有特性可以被它的子类继承,继承产生多态。而多态可以实现将“做什么”和“谁去做,怎样做”分类开。这样是的面向对象的代码变得更加优雅简洁。
面向对象的三个特征是:继承,封装,多态。
1.继承
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。
新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类
可以修改或增加新的方法使之更适合特殊的需要。2.封装
封装是面向对象的特征之一,是对象和类概念的主要特性。封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本
概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。一旦定义了一个对象的特性,则有必要决定这
些特性的可见性,即哪些特性对外部世界是可见的,哪些特性用于表示内部状态。在这个阶段定义对象的接口。通常,应禁止直接访问一个对象的实际表示,
而应通过操作接口访问对象,这称为信息隐藏。事实上,信息隐藏是用户对封装性的认识,封装则为信息隐藏提供支持。封装保证了模块具有较好的独立性,
使得程序维护修改较为容易。对应用程序的修改仅限于类的内部,因而可以将应用程序修改带来的影响减少到最低限度。
3.多态
多态性是指允许不同类的对象对同一消息作出响应。比如同样的加法,把两个时间加在一起和把两个整数加在一起肯定完全不同。又比如,同样的选择
编辑-粘贴操作,在字处理程序和绘图程序中有不同的效果。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的
优势,很好的解决了应用程序函数同名问题。
|
|