① 什么是面向对象的编程方法
面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP 达到了软件工程的三个主要目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。
② 什么是面向对象的程序设计思想
一种程序设计范型,同时也是一种程序开发的方法。对象指的是类的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。
面向对象程序设计可以看作一种在程序中包含各种独立而又互相调用的对象的思想,这与传统的思想刚好相反:传统的程序设计主张将程序看作一系列函数的集合,或者直接就是一系列对电脑下达的指令。
面向对象程序设计中的每一个对象都应该能够接受数据、处理数据并将数据传达给其它对象,因此它们都可以被看作一个小型的“机器”,即对象。
(2)什么是面向对象的程序设计扩展阅读
面向对象程序设计的优点:
1、数据抽象的概念可以在保持外部接口不变的情况下改变内部实现,从而减少甚至避免对外界的干扰。
2、通过继承大幅减少冗余的代码,并可以方便地扩展现有代码,提高编码效率,也减低了出错概率,降低软件维护的难度。
3、结合面向对象分析、面向对象设计,允许将问题域中的对象直接映射到程序中,减少软件开发过程中中间环节的转换过程。
4、通过对对象的辨别、划分可以将软件系统分割为若干相对为独立的部分,在一定程度上更便于控制软件复杂度。
5、以对象为中心的设计可以帮助开发人员从静态(属性)和动态(方法)两个方面把握问题,从而更好地实现系统。
6、通过对象的聚合、联合可以在保证封装与抽象的原则下实现对象在内在结构以及外在功能上的扩充,从而实现对象由低到高的升级。
③ 什么是面向对象的程序设计方法
所有程序语言的最终目的都是提供一种抽象方法一种较有争议的说法是解决问
题的复杂程度直接取决于抽象的种类及质量这儿的种类是指准备对什么进行抽象
汇编语言是对基础机器的少量抽象后来的许多命令式语言如FORTRAN BASIC
和C 是对汇编语言的一种抽象与汇编语言相比这些语言已有了长足的进步但它们的
抽象原理依然要求我们着重考虑计算机的结构而非考虑问题本身的结构在机器模型位
于方案空间与实际解决的问题模型位于问题空间之间程序员必须建立起一种
联系这个过程要求人们付出较大的精力而且由于它脱离了编程语言本身的范围造成程
序代码很难编写而且要花较大的代价进行维护由此造成的副作用便是一门完善的编程
方法学科
为机器建模的另一个方法是为要解决的问题制作模型对一些早期语言来说如LISP
和APL 它们的做法是从不同的角度观察世界所有问题都归纳为列表或所
有问题都归纳为算法PROLOG 则将所有问题都归纳为决策链对于这些语言我们认为
它们一部分是面向基于强制的编程另一部分则是专为处理图形符号设计的每种方法
都有自己特殊的用途适合解决某一类的问题但只要超出了它们力所能及的范围就会显得非常笨拙
面向对象的程序设计则在此基础上跨出了一大步程序员可利用一些工具表达问题空间
内的各种元素由于这种表达非常普遍所以不必受限于特定类型的问题我们将问题空
间中的元素以及它们在方案空间的表示物称作对象Object 当然还有一些在问题空
间没有对应体的其他对象通过添加新的对象类型程序可进行灵活的调整以便与特定的
问题配合所以在阅读方案的描述代码时会读到对问题进行表达的话语与我们以前见过
的相比这无疑是一种更加灵活更加强大的语言抽象方法总之OOP 允许我们根据问
题来描述问题而不是根据方案然而仍有一个联系途径回到计算机每个对象都类似一
台小计算机它们有自己的状态而且可要求它们进行特定的操作与现实世界的对象
或者物体相比编程对象与它们也存在共通的地方它们都有自己的特征和行为
④ 什么是面向对象程序编程
面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术[1]发展到一定阶段后的产物。早期的计算机编程是基于面向过程的方法,例如实现算术运算1+1+2 = 4,通过设计一个算法就可以解决当时的问题。随着计算机技术的不断提高,计算机被用于解决越来越复杂的问题。一切事物皆对象,通过面向对象的方式,将现实世界的事物抽象成对象,现实世界中的关系抽象成类、继承,帮助人们实现对现实世界的抽象与数字建模。通过面向对象的方法,更利于用人理解的方式对复杂系统进行分析、设计与编程。同时,面向对象能有效提高编程的效率,通过封装技术,消息机制可以像搭积木的一样快速开发出一个全新的系统。面向对象是指一种程序设计范型,同时也是一种程序开发的方法。对象指的是类的集合。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。
首先根据客户需求抽象出业务对象;然后对需求进行合理分层,构建相对独立的业务模块;之后设计业务逻辑,利用多态、继承、封装、抽象的编程思想,实现业务需求;最后通过整合各模块,达到高内聚、低耦合的效果,从而满足客户要求。
面向对象的概念具体要求的确定,各自有各自的理解。
⑤ 什么是面向对象的编程语言啊
面向对象语言(Object-Oriented Language)是一类以对象作为基本程序结构单位的程序设计语言。指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。
其特点如下:
(1)任何事物都是对象。
(2)运行期的基本实体,也是一个包括数据和操作这些数据的代码的逻辑实体。
(3)每个对象可以有自己的内存空间包含其他对象。
(4)类是具有相同类型的对象的抽象。一个对象所包含的所有数据和代码可以通过类来构造。
(5)程序由一系列的对象组合,它们通过发送消息告诉彼此做什么。
(6)封装是将数据和代码捆绑到一起,避免了外界的干扰和不确定性。
(7)一个特定类型的所有对象都可以接受同样的消息。
(8)继承是让某个类型的对象获得另一个类型的对象的特征。
(9)每一个对象都有类型。
(10)多态是指不同事物具有不同表现形式的能力。
注意事项:
Java是一门面向对象编程语言,具有功能强大和简单易用两个特征。
C语言是面向过程的程序设计语言,与C++,Java等面向对象的编程语言有所不同。
VB是一种面向对象的可视化程序设计语言,采取了事件驱动的编程机制。
(5)什么是面向对象的程序设计扩展阅读:
面向对象编程的优点:
易维护 :可读性高,由于继承的存在,即使改变需求,那么维护也只是在局部模块。
易扩展 :通过继承,我们可以大幅减少多余的代码,并扩展现有代码的用途;
模块化 :封装可以定义对象的属性和方法的访问级别,通过不同的访问修饰符对外暴露安全的接口,防止内部数据在不安全的情况下被修改。
方便建模:很多时候可以使用现实生活中对象的概念抽象后稍作修改来进行建模,极大方便了建模的过程。
⑥ 什么是面向对象的程序设计
什么是面向对象的设计思想?也许有不少初学者对这个概念还有许多不明白的地方,
特别是这个处于新旧思想交替的时代,许多人刚刚学完现在看来是快要淘汰的只是面向过程的
语言。他们的脑子还没有脱离面向过程思想的束缚,抬头却发现,“面向对象”早已经流行
开来,这个陌生的词漫天飞舞。随便拿起一本流行计算机技术书籍,那里会没有“面向对象”
的字眼!于是心中便惶惑了:什么叫“面向对象”?不感兴趣者,一带而过;有志于在这方
面发展的,匆忙找到一本有关书籍来啃究竟什么是“面向对象”。然而,要突破思想的束缚,
说难也不难,说到要深刻认识却也不容易。笔者在做了一些轻量级的工作后,颇以为有点心
得,不怕贻笑大方,写出已供广大同行批评指正。
“对象(Object)”一词,早在十九世纪就有现象学大师胡塞尔提出并定义。对象是世
界中的物体在人脑中的映象,是人的意识之所以为意识的反映,是做为一种概念而存在的
先念的东西,它还包括了人的意愿。举例说明吧。当我们认识到一种新的物体,它叫树,于
是在我们的意识当中就形成了树的概念。这个概念会一直存在于我们的思维当中,并不会因
为这棵树被砍掉而消失。这个概念就是现实世界当中的物体在我们意识当中的映象。我们对
它还可以有我们自己的意愿,虽然我们并不需要付诸实现——只要在你的脑中想着把这棵树
砍掉做成桌子、凳子等——我们就把它叫做意向。于是,对象就是客观世界中物体在人脑中
的映象及人的意向。只要这个对象存在我们的思维意识当中,我们就可以籍此判断同类的东
西。譬如,当我们看到另外一棵树是,并不会因为所见的第一棵树不在了失去了供参照的模
板而不认识这棵树了。当我们接触某些新事物时,我们的意识就会为这些事物确立一个对象
。当然这个过程是怎么形成的,那就不是我们所能讨论的问题了。
上面所说的对象研究的是一般意义上的问题,因而它可以外推到一切事物。我们经常
所说的“对象”,一班指的是解决信息领域内所遇到问题的方法。特别是应用软件技术来解
决问题的方法。如我们经常碰到的面向对象的编程(Object-Oriented Programming)、面向对
象的分析(Object-Oriented Analysis)、面向对象的设计(Object-Oriented Design)等。应用
前面所介绍的关于对象的概念,可以对这些问题做进一步的分析。在面对较复杂的系统,我
们可以将它作为一个对象来进行分析。一个系统(解决某个问题的全套解决方案)作为一个
对象,可以由多个部分组成。同样,这个对象也可以由多个对象组成。对于同类的事物,可
以由一个对象来表示。这样做的益处是显而易见的,它灵活而高效,可以大大减轻设计人员
的工作量,简化实际的模型。举一个例子。在关系型数据库的设计当中,我们可以把一个元
组当作对象,给它定义一组操作方法。这些方法将适用于所有元组,从而我们不必在更大的
范围内去细致的考虑不同的元组(如判断一个元素是否合法):因为它们有一组公共的面向
本身的方法,它们“自己”可以“解决”自己的问题。更上一层的对象可以是一个表、视图
等。表对象在元组对象的基础上又有它们自己的方法,如增加、删除等。从这个层面上讲,
它也只需要做“自己”的事情,因为有元组对象的支持,它无须去考虑像元素是否合法这类
的事情。甚至,有时为了满足我们还可以将元素或表群当作时对象并定义它们自己的方法。
这样,更能显示面向对象的优势。
上面所讨论的可以说是面向对象的分析方法。在具体的设计过程当中,还应该采用适当
的方式。因为面向对象的思想固然很先进,如果做得不好的话,同样不能达到预期的效果。
这主要表现在处理对象与对象的关系上没有做好,对象与对象的层次不分明。如上面所举得
关系型数据库得例子,如果在元组层面上得对象过多得考虑一个表对象得因素,或一个表层
面上对象过多地考虑一个元组对象的因素,甚至去考虑元素层面上的因素,这些都不是好的
面向对象的设计方法。这一点,在语言实现方面,Java比C++更有优势,因为它不允许多
重继承,从而使对象之间的关系更明确。谁也不会否认C++的功能更强大,但是它也要由次
付出巨大代价——当现在代码库发展到一定程度、一定规模时,个对象之间的层次关系将
变得异常复杂,给后继使用者得学习、理解带来很大的困难,应用上很难把握。另外,虽然
C++具备面向对象的处理能力,但它还是保留了很多面向过程的东西。用C++完全可以不用
面向对象的思想来进行程序设计,当然人们不会这样去做——除了那些只是把C++看成是C
扩充的初学者,这就为以后的发展埋下了隐患。在者一方面,Java的限制更多一点。就者一
点还远远不够。搞开发的是人,开发方法是由人决定的。要应用面向对象的方法开发出优秀
的软件,必须要求开发人员具有良好的面向对象的思想。好的工程师可以利用适当的工具开
发出优秀的软件——而不在乎他所使用的语言工具——Java、C++、Object Pascal、Ada等。
要能应用面向对象的思想熟练得做好系统分析、设计、实现(编程),首先要求开发人
员知道什么是对象,什么是面向对象得概念,否则是谈不上应用面向对象得思想搞软件开发
了。希望读者能在看到我在前面的不太严密、详细的论述之后可以对“对象”这个概念由一
个初步的了解,同时也希望有不同看法的同行提出批评。其次,还要求开发人员有比较丰富的开
发经验。否则,光谈理论,那是不能真正体会“面向对象”的含义的。尽管如此,我们还是
可以定出一般的规则的。抛开生命周期的其它阶段,对一个确立的系统一般可以进行以下几
个过程:
一、首先应用面向对象的思想进行系统分析。仔细的划分系统的各个部分,明确它
们之间的层次关系,然后将各个部分作为一个对象进行功能上的分析。例如,要设计一个用
户界面,它可能由几个主要的窗体组成:主窗体MainFrame、功能性子窗体FunctionFrame
以及对话对话框Dialog。其中,MainFrame中可能还包括菜单、工具条、文本框、状态条等
Windows组件。对于要完成一些重要功能的组件,我们可以单独将它作为一个对象看待,在
具体的实现中,用单独一个类来表示。而一些并不是很重要的、只是在过程中需要用到的组
件,就可以将它们集成到其他对象中去。要明确每个对象自己的任务——不要让它有缺陷,
也不能越殂代庖。各个对象之间的关系通过过程、内容、功能等耦合来实现。
实际上,如果你是用Java进行开发,你会发现swing组件本身就非常好用,因为它们
之间的关系是很分明的——你无须去理解分清象C++中的组件那样复杂的关系。在开发你自
己的组件时,也需要力求达到这样的效果。
二、其次时应用面向对象的思想进行系统设计。其实在真正做好了系统分析的工作之后,
进行设计就比较轻松了。这段时间只要进一步确定各个对象的功能以及各个对象之间的关系
。为了能够更好地帮助实现人员明白各个对象之间的关系,可以利用一些工具将这些组件的
关系表示出来,统一建模语言(Uniformed Mole Language,UML)就是这样的一种好东
西。它不仅可以现在帮助开发人员了解整个系统,也为以后的维护工作提供一个档案文件,
给以后的工作提供巨大的方便。