现在的位置: 首页 > 综合 > 正文

面向对象的思想主要包括什么?面向对象技术有什么好处?

2013年09月16日 ⁄ 综合 ⁄ 共 2359字 ⁄ 字号 评论关闭
 

面向对象的思想主要包括什么?面向对象技术有什么好处?
2008-03-19 12:57

继承 多态 封装
● 封装:用抽象的数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型内部。
● 继承:子类拥有父类的所有数据和操作。
● 多态:一个程序中同名的不同方法共存的情况。
有两种形式的多态– 重载与重写。

面向对象的好处及其代价
面向对象所以要采用它们,是因为它们有其好处;所以有人不喜欢他们,是因为他们也有其不好的地方.

下面是我由面向对象的特征延伸出来的几点看法:
第一,类具有"独立性".
由于这种独立的存在,使得和其他的"过程也好,对象也罢"能够不彼此牵引.避免"牵一发而动全身"的局面.这有利于维护和调试.
第二,类具有"通用性".
这种通用性,是通过抽象得来的.所谓抽象,就是抽取出事物的共同特征并且加以概括.正是因为这种"通用性"的实现,才造就了"re-use"的可能.
第三,类具有"灵活性".
由于第二个特征的存在,加上客观事物的特殊性,有可能通用的类中一部分成员方法变得"不通用",这个时候通过继承和Overload的机制,使得它能够应付某些特殊情况,从而实现了"灵活性".

在上述前提下,要得这些好处,必须通过系统的思考.而思考也许并不总是愉快的.所以就得为得到这些好处而付出"额外"思考的代价(还包括代码的数量.呵呵有意思...)


面向对象技术的好处

就分析设计层面来说,面向对象技术提供了更高级的抽象能力以及更多的方法和工具,如设计模式;
就实现维护层面来说,面向对象技术使代码重用更容易,且使代码具有可扩展性,便于软件的维护和升级更新。

面向对象是最近非常流行的名词,但是究竟什么是面向对象技术呢?采用面向对象技术的好处是什么?是不是我们用到了面向对象语言,会设计类这种好处就一定会出现呢?下面谈谈我自己的理解。

  
1)近代的软件产业发展非常的迅速,但是却出现了让软件开发人员越来越不能忽视的危机,比如,软件的开发成本,尤其是大型软件开发成本、软件维护升级等费
用非常的昂贵,针对出现的危机,人们提出了能够提高代码复用等的面向对象技术,面向对象技术的提出可以使客户于软件开发人员、软件开发人员之间的交流更加
的顺畅,原因在于:首先,面向对象技术通常对现实世界的对象进行抽象,这种抽象使得即是非专业人员也能明软件要做什么,使得客户于专业的软件开发人员交流
起来更加顺畅,节约开发成本;其次,面向对象技术通常会采用封装,继承等技术,这些技术会使得不同的程序模块之间的关联度减小,可以使得开发人员专注于程
序的研发,而不是把大量的精力都放到各个模块的协调上。

2)并不是说我们利用了面向对象的语言,比如C++、JAVA,面向对象技术的好处就会出现,实际上在小的程序设计
上,可能根本不需要这么复杂。真正的大型软件开发用到时需要采用相应的技术方法,不断的优化,比如瀑布模型法,快速原型法。瀑布模型法主要是把软件分为若
干阶段,在每一个阶段,都充分的和客户交流;快速模型法主要是首先提出一个总的模型提交给客户,然后在不断的修改,通常这种方法只适用于较小的工程。无论
采用那种方法我们可以遵从一个原则:就是把大的软件项目不断的细化,最后细化到一个个小函数,然后在根据之间的关系封装等。

面向对象技术(OOT)是一种软件开发和程序设计技术。所开发的程序是面向对象程序,直接描述客观世界的对象及其相互关
系。例如,银行经理、秘书、职员、顾客、帐本、打印机,直接作为对象出现的程序中。他们相互通信,完成诸如存取款、会计结算、打印报表等业务。以往的编程
技术只用数据结构和算法来模拟要完成的业务,虽然可以得到所需计算,但经不起修改。如果增加某项业务,如代营股票,则程序几乎要重编。而现在只要把增加的
业务加到顾客、帐本、职员、打印机这些对象上就可以了。

对象是封装了数据和操作的程序块。所谓封装是为这个程序块建立显示的界面。其它对象只能向这个界面发消息,不能访问内部的私有数据和操作。比如我们要求某
人“坐下”(发消息),某人接受消息后调整自己的肌肉、神经使自己坐下(操作),从而改变了他的状态(描述姿态的数据变了)。外界不必过问惊动了几条神
经,收缩了哪几块肌肉。因此,内部的数据和实现操作的算法若有改动,对其它程序对象没有任何影响。

封装使程序局部化,易修改、好维护,但许多对象有相同的功能时免不了重复,所以面向对象技术有继承的机制。例如,我们描述了“人”这一对象。人有姓名、年
龄、职业、住址等数据和吃饭、乘车、上班等操作。我们再设计一个新对象“中国人”时,它将继承“人”的所有数据和操作,再加上“说汉话”、“写汉字”、“
身份证号”等“中国人”特有的数据和操作。这样,设计新对象时只要在原有对象基础上作较少的派生,如果运行无误,便将新对象入库,下次又可继续派生。如从
中国人派生出“中国男人”、“中国女人”等。于是,库中各类对象按继承关系可形成一棵倒置的树,分枝不断增加,到一定时候一个新程序要用到的对象类库中全
有,只要“摘取”出来就可以直接使用,几乎不用编程。所以说,继承支持高度的软件重用。

此外,由于对象自己操作自己的数据。同一消息不同的对象均以自己的方式响应,使得一种消息可有多种响应方式。这叫多态性。例如,“吃饭”这个消息,“中国
人”和“俄国人”响应不同(一用筷子,一用刀叉),按过去的编程方法,要分别编出各自的程序,多态性则使程序增删简化。

封装、继承、多态是面向对象程序的主要特征。正是这些特征使程序安全、可靠、可重用、易维护。把这些思想用于硬件、数据库、人工智能技术、分布式计算、网
络、操作系统都显示出其优越性。因而,成为当今新兴的计算机技术。特别是多媒体数据只有与相应的操作相联系才能显现出图、声、像,采用封装数据和操作的办
法,有力地促进了多媒体应用技术的发展。

抱歉!评论已关闭.