1980年代面向对象主要指一种程序设计方法,但在随后的发展中,面向对象的方法已经渗透到计算机软件领域的许多分支。
面向对象方法是一种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的方法。
定义二: 面向对象方法是以认识论为基础,用对象来理解和分析问题空间,并设计和开发出由对象构成的软件系统(解空间)的方法。 由于问题空间和解空间都是由对象组成的,这样可以消除由于问题空间和求解空间结构上的不一致带来的问题。简言之,面向对象就是面向事情本身,面向对象的分析过程就是认识客观世界的过程。
面向对象方法从对象出发,发展出对象,类,消息,继承等概念
各种面向对象编程语言(OOPL)相互有别,但都能看到它们对面向对象三大机制的支持,即: “封装、继承、多态”
– 封装,隐藏内部实现
– 继承,复用现有代码
– 多态,改写对象行为
使用面向对象编程语言(如C++),可以推动程序员以面向对象的思维来思考软件设计结构,从而强化面向对象的编程范式。
-----------------------------------------------------*****-------------------------------------------------------------------
对象的本质:对象具有状态、行为和标识。类似对象的结构和行为在他们的共同类里定义。术语"实例"和"对象"是可以互换的。
-状态:对象的状态包括对象的(通常是静态的)所有属性和这些属性的当前值(通常是动态的)。
-行为:行为是一个对象根据它的状态改变和消息传递所采取的行动何所作出的反应。
对象的行为代表其对外的可见和可测试的活动。
-标识:表示是一个对象用来和所有其他对象相区分的特性。
类:
类是共享一个公用结构和一个公用行为的对象的集合。
-类的接口(interface)提供了他的外观并因此隐藏它的结构和行为。
-类的实现(implementation)却是它的内貌,包括它的行为的秘密。
--------------------------------------------------------------------------------------------引《面向对象分析与设计》booch
-------------------------------------------------------------*****------------------------------------------------------------
抽象是个好东西---------------------引《面向对象分析与设计》booch
抽象:表示了一个对象与其他所有对象相区别的基本特征,因此提供同观察者角度有关的清晰定义的概念界限
抽象的种类包括以下几种:(按有用程度又搞到地排列)
-实体抽象:一个对象,用来表示问题领域或解决方案领域中实体的有用模型。
-行动抽象:一个对象,提供一组泛化的操作,其中所有操作都执行同类功能。
-虚拟机器抽象:一个对象,将全部由某个高层控制使用的操作组合在一起,或是将全部使用某个底层操作
集合的操作组合。
-重合抽象: 一个对象,将互不关联的一组操作打包。
封装和抽象是两个互补的概念:抽象着重于对象的科观察行为,而封装着重于引起这种行为的实现。
封装多是由信息隐藏得到的,通过信息隐藏达到封装。
封装是划分抽象的结构和行为元素的过程。封装用来分离抽象的契约接口和它的实现 。
---------------------------------------------------------------------------《设计模式:可复用面向对象软件的基础》