
也就是说,数据结构和方法被捆绑到了一起,方法的存在是为了实现某些行为,而这些行为如果涉及到对数据的 *** 作一般也是对自身数据的 *** 作,方法和数据结构是相互依存的。比如对于一个矩形,那么它有成员变量长和宽,它有方法求面积和周长。这时你就可以把这些封装成一个类,也就是对象。对于求体积是这种方法是矩形所不存在的,所以它就是另一个对象的元素了。面向对象和面向过程的区别就在于,面向过程是先定义好数据结构然后再根据数据结构设计相应的方法,而面向对象的编程则是针对对象来进行,也就是说如果一个程序中如果涉及到多个对象,每个对象只需要考虑自己的封装设计,对于封装的有些东西我们是不关心的,只需要了解它表现出来的方法就可以了,而面向过程刚所有的方法和数据结构相互依存,有时可能要考虑到多个数据结构和一些方法的实现细节。
1、结构化程序设计
在结构化程序设计中,任何程序段的编写都基于3种结构:分支结构、循环结构和顺序结构。程序具有明显的模块化特征,每个程序模块具有惟一的出口和入口语句。结构化程序的结构简单清晰,模块化强,描述方式贴近人们习惯的推理式思维方式,因此可读性强。
2、面向对象程序设计
面向对象程序设计方法是尽可能模拟人类的思维方式,使得软件的开发方法与过程尽可能接近人类认识世界、解决现实问题的方法和过程,也即使得描述问题的问题空间与问题的解决方案空间在结构上尽可能一致,把客观世界中的实体抽象为问题域中的对象。
程序设计的分类
1、按照结构性质,有结构化程序设计与非结构化程序设计之分。前者是指具有结构性的程序设计方法与过程。它具有由基本结构构成复杂结构的层次性,后者反之。
2、按照用户的要求,有过程式程序设计与非过程式程序设计之分。前者是指使用过程式程序设计语言的程序设计,后者指非过程式程序设计语言的程序设计。
3、按照程序设计的成分性质,有顺序程序设计、并发程序设计、并行程序设计、分布式程序设计之分。按照程序设计风格,有逻辑式程序设计、函数式程序设计、对象式程序设计之分。
1结构化设计方法
所谓结构化程序设计方法主张把软件系统按功能(对应结构化程序中的最小单元函数)进行逐步的细分,因此也被称为面向功能的程序设计方法。这种设计方法的每个功能都负责都数据进行一次处理,即每个功能都接受一些输入数据,处理完后输出一些数据,这种处理数据的方式也被称为面向数据流的处理方式。
结构化设计采用自顶向下设计方法,在设计阶段需要考虑每个模块应该分解成哪些子模块,每个子模块又该分解成哪些更小的子子模块。。。以此内推,直到模块被细化为一个个函数。
这种结构化的设计方法显然是有局限性的:
1设计不够直观,与人类的思维方式不一致。因为开发者需要将客观世界的模型分解成一个个功能,每个功能用于完成一定的数据处理。
2适应性差,可扩展性不强。由于采用自顶向下的设计方法,当用户需求改变时,需要自顶向下的修改模块结构,维护的成本相当大。
程序的三种基本结构:顺序结构、选择结构和循环结构。
2面向对象设计方法
面向对象程序设计方法的基本思想是使用类、对象、继承、封装和消息等概念进行程序设计。它从现实世界客观存在的事物(对象)出发来构造软件系统。强调尽可能用人类自然的思维方式思考问题,认识问题,从而将现实世界中的事物抽象成系统中的类,作为系统的基本构成单元。这样构建的系统能直接映射客观世界,更符合现实世界的本来面貌。
面向对象的基本哲学是世界是由各种各样具有自己的运动规律和内部状态的对象所组成的;不同对象之间的相互作用和通信构成了完整的现实世界。
从程序设计的角度看,面向对象的程序设计语言必须有描述对象及其相互之间的关系的语言成分。归纳起来即:系统中一切都是对象;对象是属性及其 *** 作的封装体;对象可以按性质划分为类,对象是类的实例;实例关系和继承关系是对象之间的静态关系;消息传递是对象之间动态联系的唯一形式,也是计算的唯一形式;方法是消息的序列。
在面向对象的编程过程中,开发者要从自己的使用角度和认识角度出发来定义类,从而模拟客观世界的事物,并让自己明白这种事物是用来做什么的,对我们有什么意义。用抽象的方法忽略一个事物中与目标类无关的那些方面,充分地注意与当前目标有关的方面。
面向对象思想设计的结构,可读性高,由于继承的存在,即使改变需求,那么维护也只是在局部模块,所以维护起来是非常方便和较低成本的。
2、质量高
在设计时,可重用现有的,在以前的项目的领域中已被测试过的类使系统满足业务需求并具有较高的质量。
3、效率高
在软件开发时,根据设计的需要对现实世界的事物进行抽象,产生类。使用这样的方法解决问题,接近于日常生活和自
所有程序语言的最终目的都是提供一种抽象方法一种较有争议的说法是解决问
题的复杂程度直接取决于抽象的种类及质量这儿的种类是指准备对什么进行抽象
汇编语言是对基础机器的少量抽象后来的许多命令式语言如FORTRAN BASIC
和C 是对汇编语言的一种抽象与汇编语言相比这些语言已有了长足的进步但它们的
抽象原理依然要求我们着重考虑计算机的结构而非考虑问题本身的结构在机器模型位
于方案空间与实际解决的问题模型位于问题空间之间程序员必须建立起一种
联系这个过程要求人们付出较大的精力而且由于它脱离了编程语言本身的范围造成程
序代码很难编写而且要花较大的代价进行维护由此造成的副作用便是一门完善的编程
方法学科
为机器建模的另一个方法是为要解决的问题制作模型对一些早期语言来说如LISP
和APL 它们的做法是从不同的角度观察世界所有问题都归纳为列表或所
有问题都归纳为算法PROLOG 则将所有问题都归纳为决策链对于这些语言我们认为
它们一部分是面向基于强制的编程另一部分则是专为处理图形符号设计的每种方法
都有自己特殊的用途适合解决某一类的问题但只要超出了它们力所能及的范围就会显得非常笨拙
面向对象的程序设计则在此基础上跨出了一大步程序员可利用一些工具表达问题空间
内的各种元素由于这种表达非常普遍所以不必受限于特定类型的问题我们将问题空
间中的元素以及它们在方案空间的表示物称作对象Object 当然还有一些在问题空
间没有对应体的其他对象通过添加新的对象类型程序可进行灵活的调整以便与特定的
问题配合所以在阅读方案的描述代码时会读到对问题进行表达的话语与我们以前见过
的相比这无疑是一种更加灵活更加强大的语言抽象方法总之OOP 允许我们根据问
题来描述问题而不是根据方案然而仍有一个联系途径回到计算机每个对象都类似一
台小计算机它们有自己的状态而且可要求它们进行特定的 *** 作与现实世界的对象
或者物体相比编程对象与它们也存在共通的地方它们都有自己的特征和行为
面向对象方法的主要特征有:
1、封装性
封装是一种信息隐蔽技术,它体现于类的说明,是对象的重要特性。封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性(对象能接受哪些消息,具有那些处理能力),而对象的内特性(保存内部状态的私有数据和实现加工能力的算法)对用户是隐蔽的。
2、继承性
继承性是子类自动共享父类之间数据和方法的机制。它由类的派生功能体现。一个类直接继职其它类的全部描述,同时可修改和扩充。
3、多态性
对象根据所接收的消息而做出动作。同一消息为不同的对象接受时可产生完全不同的行动,这种现象称为多态性。利用多态性用户可发送一个通用的信息,而将所有的实现细节都留给接受消息的对象自行决定,如是,同一消息即可调用不同的方法。
扩展资料
面向对象方法的优越性
(1)强调从现实世界中客观存在的事物(对象)出发来认识问题域和构造系统,这就使系统开发者大大减少了对问题域的理解难度,从而使系统能更准确地反映问题域。
(2)运用人类日常的思维方法和原则(体现于OO方法的抽象、分类、继承、封装、消息通讯等基本原则)进行系统开发,有益于发挥人类的思维能力,并有效地控制了系统复杂性。
(3)对象的概念贯穿于开发过程的终,使各个开发阶段的系统成分具良好的对应,从而显著地提高了系统的开发效率与质量,并大大降低系统维护的难度。
(4)对象概念的一致性,使参与系统开发的各类人员在开发的各所段具有共同语言,有效地改善了人员之间的交流和协作。
(5)对象的相对稳定性和对易变因素隔离,增强了系统的应变能力。
(6)对象类之间的继承关系和对象的相对独立性,对软件复用提供了强有力的支持。
面向对象编程又称OOP,是一种计算机编程架构。本质是以建立模型体现出来的抽象思维过程和面向对象的方法。
OOP的一条基本原则是计算机程序由单个能够起到子程序作用的单元或对象组合而成。OOP达到了软件工程的三个主要目标:重用性、灵活性和扩展性。OOP=对象+类+继承+多态+消息,其中核心概念是类和对象。
面向对象程序设计方法是尽可能模拟人类的思维方式,使得软件的开发方法与过程尽可能接近人类认识世界、解决现实问题的方法和过程,也即使得描述问题的问题空间与问题的解决方案空间在结构上尽可能一致,把客观世界中的实体抽象为问题域中的对象。
扩展资料
面向对象程序设计以对象为核心,该方法认为程序由一系列对象组成。类是对现实世界的抽象,包括表示静态属性的数据和对数据的 *** 作,对象是类的实例化。对象间通过消息传递相互通信,来模拟现实世界中不同实体间的联系。在面向对象的程序设计中,对象是组成程序的基本模块。
模型是用来反映现实世界中事物特征的。任何一个模型都不可能反映客观事物的一切具体特征,只能对事物特征和变化规律的一种抽象,且在所涉及的范围内更普遍、更集中、更深刻地描述客体的特征。通过建立模型而达到的抽象是人们对客体认识的深化。
参考资料来源:百度百科-面向对象程序设计
这种方法具有抽象、封装、继承、多态性四个基本特征。
抽象是人类认识问题的最基本手段之一。面向对象程序设计中的抽象包括数据抽象和代码抽象两个方面。数据抽象定义了对象的属性和状态,即此类对象区别于彼类对象的特征物理量;代码抽象定义某类对象的共同行为特征或具有的共同功能。
扩展资料:
注意事项:
封装为用户提供对象的属性和行为的接口,用户通过这些接口使用这些类,无须知道这些类内部是如何构成的,同时用户不能 *** 作类中的内部数据。
每个子类下又可以有子类,中间层的子类成为下一层的父类,每个子类继承父类的属性和方法。
将父类对象应用于子类的特征就是多态,每一个父类下都可以继承子类,如果将子类对象统一看作是父类的实例对象,子类都调用了父类的属性和方法,但又与父类不相同。
参考资料来源:百度百科-面向对象程序
以上就是关于面向对象设计方法全部的内容,包括:面向对象设计方法、什么是结构化程序设计与面向对象程序设计方法、面向对象的程序设计方法采用了什么样的抽象方法构建程序的类与对象等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)