结构化程序设计和面向对象程序设计的主要特征各是什么?

作者&投稿:咸梦 (若有异议请与网页底部的电邮联系)
什么是面向对象程序设计?它与传统的结构化程序设计有什么不同?~


结构化程序设计与面向对象主要的区别在于设计思维上不同,另外封装性上结构化编程比较难于封装,复用性上也不如面向对象编程。
1、设计思维。
面向过程程序设计方法的实质上是从计算机处理问题的观点来进行程序设计工作:“输入——运算——输出”。
面向过程程序设计者需要变更习惯的思维方法以贴近计算机的内部工作机理。面向过程程序设计所具有的流的工作性质,试图通过信息流及其转换来认识系统,不仅加大了程序设计的难度,同时亦使得程序的可理解性比较差。
面向对象在分析问题时,以对象为单位,考虑它的属性及方法,与传统的面向过程是完全不同的,面向过程在分析问题时,以一个具体的流程(事务过程)为单位,考虑它的实现。
当每次把各种设计模式回归到面向对象思想时,我都有一种“运用之妙,存乎一心”的感觉。如果能更多的更深层次的去思考面向对象思想,对于学习设计模式将会大有裨益。
2、封装性
结构化编程封装难度较大,因为其采用结构化程序分析设计程序时,开发者需要将客观世界模型分解一个一个功能,每个功能按照顺序用以完成一定的数据处理。 对于私有的方法,较难控制,敏感信息就比较难隐藏。
面向对象编程的封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。

3、复用性
传统的结构化程序设计方法以过程为中心构造应用程序,数据和处理数据的过程代码是分离的、相互独立的实体,设计出的程序可重用代码少,且当代码量增加时维护数据和代码的一致性困难
面向对象程序设计方法中,对象所具有的封装性和继承性使得代码重用成为可能,并大大减少了程序出错的可能性。
参考资料来源:百度百科——结构化程序设计
参考资料来源:百度百科——面向对象程序设计

结构化程序设计(structured programming)是进行以模块功能和处理过程设计为主的详细设计的基本原则。其概念最早由E.W.Dijikstra在1965年提出的。是软件发展的一个重要的里程碑,它的主要观点是采用自顶向下、逐步求精的程序设计方法;使用三种基本控制结构构造程序,任何程序都可由顺序、选择、重复三种基本控制结构构造 。
  详细描述处理过程常用三种工具:图形、表格和语言。
  图形:程序流程图、N-S图、PAD图
  表格:判定表
  语言:过程设计语言(PDL)
  结构化程序设计的概念是尼克劳斯�6�1沃思Niklaus Wirth在60年代末提出的,其实质是控制编程中的复杂性。结构化程序设计曾被称为软件发展中的第三个里程碑。该方法的要点是:
  (1) 没有GOTO语句;//在有资料里面说可以用,但要谨慎严格控制GOTO语句,仅在下列情形才可使用:
  ·用一个非结构化的程序设计语言去实现一个结构化的构造。
  ·在某种可以改善而不是损害程序可读性的情况下。
  (2) 一个入口,一个出口;
  (3) 自顶向下、逐步求精的分解;
  (4) 主程序员组。
  其中(1)、(2)是解决程序结构规范化问题;(3)是解决将大划小,将难化简的求解方法问题;(4)是解决软件开发的人员组织结构问题。 所谓面向对象的程序设计,就是把面向对象的思想应用到软件工程中,并指导开发维护软件。
  对象是由数据和容许的操作组成的封装体,所谓面向对象,就是基于对象的概念,以对象为中心,类和继承为构造机制,认识了解刻画客观世界以及开发出相应的软件系统。
  面向对象的程序设计(OOP)并不是刚刚提出来的,主要是由于C++和Java这类语言的传播,OOP最近才显得越来越重要了。为什么面向对象的设计如此流行呢?从理论上讲,用面向对象的语言可以处理任何其他计算机语言所能完成的事情。然而当建立基于智能体的模型时,OOP对于开始的程序员和后来的程序读者都表现出了很大的优势。
  面向对象的程序设计特点
  
  1.编程模型
  所有计算机均由两种元素组成:代码和数据.精确的说,有些程序是围绕着"什么正在发生"而编写,有些则是围绕"谁正在受影响"而编写的.
  第一种编程方式叫做"面向过程的模型",按这种模型编写的程序以一系列的线性步骤(代码)为特征,可被理解为作用于数据的代码.如 C 等过程化语言.
  第二种编程方式叫做"面向对象的模型",按这种模型编写的程序围绕着程序的数据(对象)和针对该对象而严格定义的接口来组织程序,它的特点是数据控制代码的访问.通过把控制权转移到数据上,面向对象的模型在组织方式上有:抽象,封装,继承和多态的好处.
  2.抽象
  面向对象程序设计的基本要素是抽象,程序员通过抽象来管理复杂性.
  管理抽象的有效方法是使用层次式的分类特性,这种方法允许用户根据物理含义分解一个复杂的系统,把它划分成更容易管理的块.例如,一个计算机系统是一个独立的对象.而在计算机系统内部由几个子系统组成:显示器,键盘,硬盘驱动器,DVD-ROM,软盘,音响等,这些子系统每个又由专门的部件组成.关键是需要使用层次抽象来管理计算机系统(或其他任何复杂系统)的复杂性.
  面向对象程序设计的本质:这些抽象的对象可以被看作具体的实体,这些实体对用来告诉我们作什么的消息进行响应.
  /* (我的理解)
  *计算机是一个实体,我要输入字符,显示器显示出来,那么
  *计算机(对象).输入(键盘属性).显示(显示方法)
  *使用分层来引用,操作.而不用管计算机内部如何处理.
  *只要有计算机对象,它就能响应我的操作,而我敲键盘,
  *计算机对象就把这个消息传给屏幕,屏幕显示.
  */
  计算机对象包含了它所有的属性,以及操作,这就是面向对象程序设计的三大原则之一:封装.
  3.封装
  封装是一种把代码和代码所操作的数据捆绑在一起,使这两者不受外界干扰和误用的机制.封装可被理解为一种用做保护的包装器,以防止代码和数据被包装器外部所定义的其他代码任意访问.对包装器内部代码与数据的访问通过一个明确定义的接口来控制.封装代码的好处是每个人都知道怎样访问代码,进而无需考虑实现细节就能直接使用它,同时不用担心不可预料的副作用.
  在JAVA中,最基本的封装单元是类,一个类定义着将由一组对象所共享的行为(数据和代码).一个类的每个对象均包含它所定义的结构与行为,这些对象就好象是一个模子铸造出来的.所以对象也叫做类的实例.
  在定义一个类时,需要指定构成该类的代码与数据.特别是,类所定义的对象叫做成员变量或实例变量.操作数据的代码叫做成员方法.方法定义怎样使用成员变量,这意味着类的行为和接口要由操作实例数据的方法来定义.
  由于类的用途是封装复杂性,所以类的内部有隐藏实现复杂性的机制.所以JAVA中提供了私有和公有的访问模式,类的公有接口代表外部的用户应该知道或可以知道的每件东西.私有的方法数据只能通过该类的成员代码来访问.这就可以确保不会发生不希望的事情.
  4.继承
  继承是指一个对象从另一个对象中获得属性的过程.是面向对象程序设计的三大原则之二,它支持按层次分类的概念.例如,波斯猫是猫的一种,猫又是哺乳动物的一种,哺乳动物又是动物的一种.如果不使用层次的概念,每个对象需要明确定义各自的全部特征.通过层次分类方式,一个对象只需要在它的类中定义是它成为唯一的 各个属性,然后从父类中继承它的通用属性.因此,正是由于继承机制,才使得一个对象可以成为一个通用类的一个特定实例.一个深度继承的子类将继承它在类层次中的每个祖先的所有属性.
  继承与封装可以互相作用.如果一个给定的类封装了某些属性,它的任何子类将会含有同样得属性,另加各个子类所有得属性.这是面向对象程序在复杂性上呈线性而非几何增长的一个重要概念.新的子类继承其所有祖先的所有属性.子类和系统中的其他代码不会产生无法预料的交互作用.
  5.多态
  多态是指一个方法只能有一个名称,但可以有许多形态,也就是程序中可以定义多个同名的方法,用"一个接口,多个方法"来描述.可以通过方法的参数和类型引用.
  6.封装,继承,多态的组合使用
  在由封装,继承,多态所组成的环境中,程序员可以编写出比面向过程模型更健壮,更具扩展性的程序.经过仔细设计的类层次结构是重用代码的基础.封装能让程序员不必修改公有接口的代码即可实现程序的移植.多态能使程序员开发出简洁,易懂,易修改的代码.例如:汽车
  从继承的角度看,驾驶员都依靠继承性来驾驶不同类型(子类)的汽车,无论这辆车是轿车还是卡车,是奔驰牌还是菲亚特牌,驾驶员都能找到方向盘,手刹,换档器.经过一段时间驾驶后,都能知道手动档与自动档之间的差别,因为他们实际上都知道这两者的共同超类:传动装置.
  从封装的角度看,驾驶员总是看到封装好的特性.刹车隐藏了许多复杂性,其外观如此简单,用脚就能操作它.发动机,手刹,轮胎大小的实现对与刹车类的定义没有影响.
  从多态的角度看,刹车系统有正锁反锁之分,驾驶员只用脚踩刹车停车,同样的接口可以用来控制若干种不同的实现(正锁或反锁).
  这样各个独立的构件才被转换为汽车这个对象的.同样,通过使用面向对象的设计原则,程序员可以把一个复杂程序的各个构件组合在一起,形成一个一致,健壮,可维护的程序

“面向过程程序设计”、主要是为拉大型的工程计算或者为拉完成某个任务而求出结果的对界面则要求不高 其优点是运行速度快

“面向对象程序设计

主要是对各种事物能形象的描述并且模拟在计算机上运行它兼容以上面向过程的好多功能 优点是界面比较好做 缺点执行速度和容量没有上面的快

结构化程序设计 对于以上二者均适合 这只是说明设计是的思路和方法 按照俺自己的理解:
前者是按照人们日常做事的顺序来设计语言,即无论做什么事都是按照顺序来执行的,一个个的功能模块都是联系在一起的。总之:做事是有一个个的动作完成的。
后者则是把我们客观世界里的事物都封装起来,各个事物之间是相互独立的。做什么事情都是由一个个的事物共同完成的,而不是顺序执行。总之:做事是由一个个的事物共同完成的。

俺总结的不好,但是是俺自己的看法。

这样说比较简单~~~呵呵~~~结构化程序设计方法和面向对象程序设计二者有何区别与联系请参照以下网站: http://210.40.7.188/E'ojc/OOP/OOP_010/1103.htm希望对你有所帮助。 学习ing~~~

  “面向过程程序设计”、主要是为拉大型的工程计算或者为拉完成某个任务而求出结果的对界面则要求不高 其优点是运行速度快

“面向对象程序设计”

主要是对各种事物能形象的描述并且模拟在计算机上运行它兼容以上面向过程的好多功能 优点是界面比较好做 缺点执行速度和容量没有上面的快

结构化程序设计 对于以上二者均适合 这只是说明设计是的思路和方法 按照俺自己的理解:
前者是按照人们日常做事的顺序来设计语言,即无论做什么事都是按照顺序来执行的,一个个的功能模块都是联系在一起的。总之:做事是有一个个的动作完成的。
后者则是把我们客观世界里的事物都封装起来,各个事物之间是相互独立的。做什么事情都是由一个个的事物共同完成的,而不是顺序执行。总之:做事是由一个个的事物共同完成的。

这样各个独立的构件才被转换为汽车这个对象的.同样,通过使用面向对象的设计原则,程序员可以把一个复杂程序的各个构件组合在一起

楼上很泛泛,我想他是想要点具体的吧... 其实没必要问,如果人工回答,需要很多很多内容.我想没人有这么勤快吧.


结构化程序设计的方法
对于初学者来说是一个很好的入门方法。需要注意的是,虽然结构化程序设计方法在软件开发中具有重要意义,但现代编程范式已经超越了仅限于结构化程序设计的方式,例如面向对象编程(OOP)和函数式编程(FP)。因此,在实际开发中,根据具体需求和情况选择合适的编程方法和范式也是很重要的。

结构化程序设计:解锁软件开发的秘密武器!
任何程序都离不开它们哦 128202 三大神器助你一臂之力描述处理过程 没问题 图形 表格和语言 三大神器助你一臂之力 程序流程图 N S图 PAD图 一目了然 判定表 条理清晰 过程设计语言 PDL 让代码说话 128683 GOTO语句GOTO语句曾经被视为禁忌 但现在

结构化程序设计的特点是什么?它有什么局限性?
1、结构化程序设计的特点:1) 整个程序模块化。2) 每个模块只有一个入口和一个出口。3) 每个模块都应能单独执行,且无死循环。4) 采用自顶向下。逐步求精的方法。2、局限性:1)虽然结构化程序设计方法具有很多的优点,但它仍是一种面向过程的程序设计方法,它把数据和处理数据的过程分离为相互独立...

结构化程序设计原则强调的是
逐步求精:对复杂问题,应设计一些子目标作为过渡,逐步细化。模块化:一个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目标分解为子目标,再进一步分解为具体的小目标,把每一个小目标称为一个模块。结构化程序设计原则的内容简介:“面向结构”的程序设计方法即结构化程序设计方法...

说明“面向对象”和“面向过程”有什么区别
1.面向过程(结构化程序设计)采用自顶向下、分而治之的方法,将整个程序按功能划分为几个可独立编程的子过程模块,每一子模块完成指定的子任务,主过程通过调用各子过程完来成全部处理工作 。2.面向对象的程序设计(Object-Oriented Programming)面向对象的程序设计方法强调直接以现实世界中的物体为中心...

简述传统方法和面向对象方法的特点
面向对象方法的出发点和基本原则,是尽量模拟人类习惯的思维方式,使开发软件的方法和过程尽可能接近人类认识问题和解决问题的方法与过程,从而使描述问题的问题空间与其解空间在结构上尽可能一致。对于大型、复杂及交互性比较强的系统,使用面向对象方法更有优势。面向对象程序设计缺陷:1、运行效率较低。类的...

什么是面向对象技术
问题一:面向对象的核心是什么? 面向对象技术是目前流行的系统设计开发技术,它包括面向对象分析和面向对象程序设计。面向对象程序设计技术的提出,主要是为了解决传统程序设计方法――结构化程序设计所不能解决的代码重用问题。 面向对象的编程方法具有四个基本特征: 1.抽象: 抽象就是忽略一个主题中与当前目标无关的...

软件设计师考试内容有哪些?
6.3 软件设计软件设计的基本原则软件设计方法程序设计(结构化程序设计、面向对象程序设计)6.4 软件测试的原则与方法6.5 软件质量(软件质量特性、软件质量控制)6.6 软件过程评估基本方法、软件能力成熟度评估基本方法6.7 软件开发环境和开发工具6.8 面向对象技术面向构件技术统一建模语言(UML)软件过程改进模型和方法6.9 网络...

信息系统管理工程师考试内容有哪些?
●结构化程序设计、面向对象程序设计、可视化程序设计●程序设计语言的选择,程序设计风格●系统测试的目的、类型和方法●测试设计和管理●系统转换知识5.4系统运行管理知识●系统(计算机系统、数据库系统、计算机网络系统)运行管理●系统运行管理各类人员的职责●系统的成本管理、用户管理、安全管理、性能管理●系统运行操作(...

软考信息系统管理工程师考什么?
●结构化程序设计、面向对象程序设计、可视化程序设计●程序设计语言的选择,程序设计风格●系统测试的目的、类型和方法●测试设计和管理●系统转换知识5.4系统运行管理知识●系统(计算机系统、数据库系统、计算机网络系统)运行管理●系统运行管理各类人员的职责●系统的成本管理、用户管理、安全管理、性能管理●系统运行操作(...

永兴县19791995468: 面向对象程序设计和结构化程序设计的区别,150字左右 -
有尝丹颐: 1.首先最根本的是设计思想,一个是以对象为基本单元,用对像的使用来完成程序功能,后者是基于过程的设计,比如你要做一个赛车的函数,在利用面向对象设计时,你先写好轮子类,发动机类,方向盘类...再将他们组合起来.而面向结构化则只是写你操作赛车是要进行的动作.这也只是个大概,具体理解在你学一段时间后会有自己的体会. 2.然后是他们的适用范围,越来越多的应用程序,web程序选择使用面向对象设计,有利于代码重用,消除BUG等等,但基层的程序大多会选择面向结构化的程序. 希望的对楼主有用哈.只是一些理解,正确与否还要楼主通过自己的学习来印证. 祝楼主学习顺利,一生平安.

永兴县19791995468: 结构化程序设计和面向对象程序设计的主要特征各是什么? -
有尝丹颐: “面向过程程序设计”、主要是为拉大型的工程计算或者为拉完成某个任务而求出结果的对界面则要求不高 其优点是运行速度快 “面向对象程序设计 主要是对各种事物能形象的描述并且模拟在计算机上运行它兼容以上面向过程的好多功能 优点...

永兴县19791995468: 结构化程序设计与面向对象设计主要区别 -
有尝丹颐: 结构化程序设计与面向对象主要的区别在于设计思维上不同,另外封装性上结构化编程比较难于封装,复用性上也不如面向对象编程. 1、设计思维. 面向过程程序设计方法的实质上是从计算机处理问题的观点来进行程序设计工作:“输入——...

永兴县19791995468: 简述结构化程序设计与面向对象程序设计的区别与联系 -
有尝丹颐: 结构化程序设计简洁明了,不会像面向对象那样绕圈子.因此,编写小工具时比较适合用结构化设计,但是面向对象由于引进对象概念,大大提高了软件编写的效率,适合多人协作编写较大的软件.一个灵活,一个稳重.

永兴县19791995468: 结构化程序设计 和 面向对象程序设计 -
有尝丹颐: 我来个你举个例子 比如和楼上一样的 盖房子 所谓结构化的盖法 就是把你要盖的房子拆成房间、大厅、厕所、厨房,然后分别交给4个人去设计,4个人设计好了,你在吧4个部分组合起来,成为你的房子如果是面向对象的盖法,就是你一开始就把房子设计好,房子里面那里是房间、那里是厨房、那里是厕所,都想好,然后盖好之后,再进去你的房子里面,把你的房间、厨房、大厅设计并装修好所以说结构化就是细化为几个部分,分别完成后,在进行组装 面向对像则是将整个内容分析清楚,封装成一个完整的东西后,你在进行内部细化虽然这个比喻不是很贴切,但至少应该能让你理解起来容易一些

永兴县19791995468: 面向对象和结构化程序设计的区别 -
有尝丹颐: 结构化程序的概念首先是从以往编程过程中无限制地使用转移语句而提出的.转移语句可以使程序的控制流程强制性的转向程序的任一处,在传统流程图中,就是用上节我们提到的"很随意"的流程线来描述这种转移功能.如果一个程序中多处...

永兴县19791995468: java什么是结构化程序设计?什么是面向对象程序设计?二者区别 -
有尝丹颐: C++,C#,JAVA都由C衍生而来! C++,C#,JAVA,C都是面向过程的 Visual C++,Visal C#,Visual JAVA是面向对象的 .NET是微软的一种架构,相应的有C#.NET,VB.NET等 对于结构化,是指编程语言的结构体系 结构化语言就是将自然语言加上程序设计语言的控制结构就成了结构化语言,专门用来描述加工逻辑.所以,它既有自然语言灵活性强、表达丰富的特点,又有结构化程序的清晰易读和逻辑严密的特点. 结构化语言的显著特征是代码和数据的分离.

永兴县19791995468: 面向对象设计与结构化程序设计的区别 -
有尝丹颐: 面向对象设计与人类习惯的思维方法一致,稳定性好,可重用性好,易于开发大型的软件产品,可维护性好.结构化程序设计就刚刚相反.

永兴县19791995468: 什么是面向对象程序设计,和结构化程序设计有什么不同 -
有尝丹颐: 自己百度下啊...看看再总结下...以下看看,是否对你有帮助1..思想的区别* 结构化程序设计 思想:在编程之前,先对程序系统根据业务需要进行整体的规划,描述出系统的流程.对程序系统进行模块化分和功能分配.设计出各种图表,...

永兴县19791995468: 面向对象设计与结构化程序设计的区别
有尝丹颐: 面向对象程序设计(OOP)技术汲取了结构化程序设计中好的思想,并将这些思想与一些新的、强大的理念相结合,从而给程序设计工作提供了一种全新的方法.通常,在面向对象的程序设计风格中,会将一个问题分解为一些相互关联的子集,每个子集内部都包含了相关的数据和函数.同时会以某种方式将这些子集分为不同等级,而一个对象就是已定义的某个类型的变量.当定义了一个对象,就隐含的创建了一个新的数据类型.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网