举例说明面向对象编程和结构化编程的优缺点
结构化程序的概念首先是从以往编程过程中无限制地使用转移语句而提出的。转移语句可以使程序的控制流程强制性的转向程序的任一处,在传统流程图中,就是用上节我们提到的"很随意"的流程线来描述这种转移功能。如果一个程序中多处出现这种转移情况,将会导致程序流程无序可寻,程序结构杂乱无章,这样的程序是令人难以理解和接受的,并且容易出错。尤其是在实际软件产品的开发中,更多的追求软件的可读性和可修改性,象这种结构和风格的程序是不允许出现的。比如:C,FORTRAN,PASCAL等等
结构化程序设计方法主要由以下三种逻辑结构组成:
1)顺序结构:顺序结构是一种线性、有序的结构,它依次执行各语句模块。
2)循环结构:循环结构是重复执行一个或几个模块,直到满足某一条件为止。
3)选择结构:选择结构是根据条件成立与否选择程序执行的通路。
**采用结构化程序设计方法,程序结构清晰,易于阅读、测试、排错和修改。由于每个模块执行单一功能,模块间联系较少,使程序编制比过去更简单,程序更可靠,而且增加了可维护性,每个模块可以独立编制、测试。**
面向对象程序语言中支持的对象具有三个明显得特征:
封装、继承、多态;而Javascript在类别和副本上并没有明显地分界。事实上,Javascript语言中所有的变量数据类型在JS中都是对象。JS总共支持4种对象:内置对象、自定义对象、浏览器程序对象和ActiveX对象。
return
this只是返回该对象,以便别处引用,但并不是多出一个对象。
所以,面向过程的程序设计中:程序=算法+数据结构
数据结构和算法相分离的,所以,系统庞大后,它的控制、移植、重用就成了问题。
而在面向对象的程序设计中:
对象=数据结构+算法
程序=对象+对象+.....
所以克服了面向过程的设计中存在的问题。
面向对象程序设计
作者:佚名 文章来源:不详 点击数:11677 更新时间:2005-10-14
作者:Ramchandra Garge
软件危机(Software Crisis)
软件技术总是处于不断发展变化中,新工具、新技术相继产生。这就要求软件产业和软件工程师们不停的寻求软件设计和开发的新途径。由于日益增长的软件系统的复杂性和软件产业内部愈演愈烈的竞争,这种要求变得更加紧迫。为了克服这种要求带来的软件危机,必须解决以下问题:
1、在系统设计中,如何表现问题的真实实体?
2、如何以开放的界面(interface)设计系统?
3、如何保证模块(module)的可重用性(reusability)和可扩展性(extensibility)?
4、如何开发能够容忍(tolerant)未来可能的变化模块?
5、如何提高软件的生产力和减少软件开销?
6、如何管理进度表?
7、如何提高软件质量?
8、如何将软件开发过程工业化?
当软件产品在未完成时、未被使用时或者带着各种各样的错误发布时,问题就会出现。另外,用户需求的改变已经成为一个重要问题。多份关于软件实现的报告显示,在软件产品发布和使用之前,需要仔细进行质量评估。通常状态评估中应该考虑的质量因素包括:
1、正确性(Correctness)
2、可维护性(Maintainability)
3、可重用性(Reusability)
4、开放性(Openness)和可解释性(Interpretability)
5、可移植性(Portability)
6、安全性(Security)
7、完整性(Integrity)
8、用户友好性(User friendliness)
软件演化(Software Evolution)
Ernest Tello——人工智能领域的著名作家——将软件技术的演化比喻为树的生长。和树一样,软件的演化具有明显的阶段性,这些阶段称为层(layer)。过去四十年中,这些层逐步被建立起来,每一个层都由前一个层发展而成。图1显示了这个过程。但是关于树的比喻在遇到层的生命期的问题时失败了。在软件系统中,每个层都在持续的发挥作用,而在树中,只有最上层的层才有用。
面向对象程序设计(OOP)是完成程序设计工作的新方法。自从计算机发明以来,为了适应程序复杂性的不断增长,程序设计的方法有了戏剧性的变化。汇编语言被发明出来以后,程序员们总算可以用符号表示那些机器指令,从而可以编写更长、更复杂的程序。当程序规模继续不停增长的时候,高级语言被引入,为程序员们提供了更多工具对付日益增加的复杂性。第一个被普遍使用的语言是FORTRAN。不过虽然FORTRAN迈出了重大的第一步,但用它写出的代码很难说是清晰的和容易理解的。
1960年结构化程序设计思想诞生。C和Pascal等语言都大力提倡这种程序设计的方法。结构化程序设计语言使得编写较复杂的程序变得容易。但是,一旦某个项目达到一定规模,即使使用结构化程序设计的方法,局势仍将变得不可控制。
在程序设计方法发展过程中,每一次重大突破都使得程序员可以应对更大的复杂性。在这条道路上迈出的每一步中,新的方法都运用和发展了以前的方法中最好的理念。今天,许多项目的规模又进一步发展。为了解决这个问题,面向对象程序设计方法应运而生。
在详细介绍面向对象程序设计之前,让我们简单了解一下面向过程程序设计的方法。在面向过程的程序设计方法中,问题被看作一系列将被完成的任务,如读、计算和打印。许多函数用于完成这些任务。问题的焦点集中于函数。图2显示了一个典型的面向过程的程序结构。分层分解的技术被用来确定一系列需要被完成的任务,以解决特定的问题。
面向过程程序设计的基本任务是编写计算机执行的指令序列,并把这些指令以函数的方式组织起来。通常我们使用流程图组织这些行为(action),并描述从一个行为到另一个行为的控制流。
当我们集中精力开发函数的时候,很少会去注意那些被多个函数使用的数据(data)。在这些数据身上发生了什么事情?那些使用这些数据的函数又对它们产生了什么影响?
在多函数(multi-function)程序中,许多重要的数据被放置在全局数据区,这样它们可以被所有的函数访问。每个函数都可以具有它们自己的局部数据。图3显示了一个面向过程程序中函数和数据的关系。
面向对象程序设计模式
发明面向对象程序设计方法的主要出发点是弥补面向过程程序设计方法中的一些缺点。OOP把数据看作程序开发中的基本元素,并且不允许它们在系统中自由流动。它将数据和操作这些数据的函数紧密的连结在一起,并保护数据不会被外界的函数意外的改变。OOP允许我们将问题分解为一系列实体——这些实体被称为对象(object),然后围绕这些实体建立数据和函数。面向对象程序设计中的数据和函数的组织结构如图4所示。
一个对象的数据不能访问其它对象的函数,而一个对象的函数可以访问其它对象的函数。
面向对象程序设计的一些显著的特性包括:
·程序设计的重点在于数据而不是过程;
·程序被划分为所谓的对象;
·数据结构为表现对象的特性而设计;
·函数作为对某个对象数据的操作,与数据结构紧密的结合在一起;
·数据被隐藏起来,不能为外部函数访问;
·对象之间可以通过函数沟通;
·新的数据和函数可以在需要的时候轻而易举的添加进来;
·在程序设计过程中遵循由下至上(bottom-up)的设计方法。
面向对象程序设计在程序设计模式中是一个新的概念,对于不同的人可能意味着不同的内容。因此在我们继续下面的内容之前,最好给面向对象程序设计下一个定义。我们对面向对象程序设计的定义是“面向对象程序设计是一种方法,这种方法为数据和函数提供共同的独立内存空间,这些数据和函数可以作为模板以便在需要时创建类似模块的拷贝。这样的程序设计方法称为面向对象程序设计。”
从以上定义可以看到,一个对象被认为是计算机内存中的一个独立区间,在这个区间中保存着数据和能够访问数据的一组操作。因为内存区间是相互独立的,所以对象可以不经修改就应用于多个不同的程序中。
什么是面向对象程序设计?
面向对象程序设计(OOP)技术汲取了结构化程序设计中好的思想,并将这些思想与一些新的、强大的理念相结合,从而给你的程序设计工作提供了一种全新的方法。通常,在面向对象的程序设计风格中,你会将一个问题分解为一些相互关联的子集,每个子集内部都包含了相关的数据和函数。同时,你会以某种方式将这些子集分为不同等级,而一个对象就是已定义的某个类型的变量。当你定义了一个对象,你就隐含的创建了一个新的数据类型。
面向对象程序设计中的基本概念
“面向对象”作为一个术语,在不同的人群中有着不同的解释。因此,了解一些在面向对象程序设计中广泛应用的概念是必须的。本节我们讨论以下这些内容:
1、对象(Object)
2、类(Class)
3、数据抽象(Data abstraction)
4、继承(Inheritance)
5、动态绑定(Dynamic binding)
6、数据封装(Data encapsulation)
7、多态性(Polymorphism)
8、消息传递(Message passing)
对象
在一个面向对象的系统中,对象是运行期的基本实体。它可以用来表示一个人或者说一个银行帐户,一张数据表格,或者其它什么需要被程序处理的东西。它也可以用来表示用户定义的数据,例如一个向量,时间或者列表。在面向对象程序设计中,问题的分析一般以对象及对象间的自然联系为依据。如前所述,对象在内存中占有一定空间,并且具有一个与之关联的地址,就像Pascal中的record和C中的结构一样。
当一个程序运行时,对象之间通过互发消息来相互作用。例如,程序中包含一个“customer”对象和一个“account”对象,而customer对象可能会向account对象发送一个消息,查询其银行帐目。每个对象都包含数据以及操作这些数据的代码。即使不了解彼此的数据和代码的细节,对象之间依然可以相互作用,所要了解的只是对象能够接受的消息的类型,以及对象返回的响应的类型,虽然不同的人会以不同的方法实现它们。
类
我们刚才提到,对象包含数据以及操作这些数据的代码。一个对象所包含的所有数据和代码可以通过类来构成一个用户定义的数据类型。事实上,对象就是类类型(class type)的变量。一旦定义了一个类,我们就可以创建这个类的多个对象,每个对象与一组数据相关,而这组数据的类型在类中定义。因此,一个类就是具有相同类型的对象的抽象。例如,芒果、苹果和桔子都是fruit类的对象。类是用户定义的数据类型,但在一个程序设计语言中,它和内建的数据类型行为相同。比如创建一个类对象的语法和创建一个整数对象的语法一模一样。如果fruit被定义为一个类,那么语句
fruit mango;
就创建了一个fruit类的对象mango。
数据抽象和封装
把数据和函数包装在一个单独的单元(称为类)的行为称为封装。数据封装是类的最典型特点。数据不能被外界访问,只能被封装在同一个类中的函数访问。这些函数提供了对象数据和程序之间的接口。避免数据被程序直接访问的概念被称为“数据隐藏”。
抽象指仅表现核心的特性而不描述背景细节的行为。类使用了抽象的概念,并且被定义为一系列抽象的属性如尺寸、重量和价格,以及操作这些属性的函数。类封装了将要被创建的对象的所有核心属性。因为类使用了数据抽象的概念,所以它们被称为抽象数据类型(ADT)。
封装
封装机制将数据和代码捆绑到一起,避免了外界的干扰和不确定性。它同样允许创建对象。简单的说,一个对象就是一个封装了数据和操作这些数据的代码的逻辑实体。
在一个对象内部,某些代码和(或)某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。
继承
继承是可以让某个类型的对象获得另一个类型的对象的属性的方法。它支持按级分类的概念。例如,知更鸟属于飞鸟类,也属于鸟类。就像图5中描绘的那样,这种分类的原则是,每一个子类都具有父类的公共特性。
在OOP中,继承的概念很好的支持了代码的重用性(reusability),也就是说,我们可以向一个已经存在的类中添加新的特性,而不必改变这个类。这可以通过从这个已存在的类派生一个新类来实现。这个新的类将具有原来那个类的特性,以及新的特性。而继承机制的魅力和强大就在于它允许程序员利用已经存在的类(接近需要,而不是完全符合需要的类),并且可以以某种方式修改这个类,而不会影响其它的东西。
注意,每个子类只定义那些这个类所特有的特性。而如果没有按级分类,每类都必须显式的定义它所有的特性。
多态
多态是OOP的另一个重要概念。多态的意思是事物具有不同形式的能力。举个例子,对于不同的实例,某个操作可能会有不同的行为。这个行为依赖于所要操作数据的类型。比如说加法操作,如果操作的数据是数,它对两个数求和。如果操作的数据是字符串,则它将连接两个字符串。
图6演示了一个函数处理不同数量、不同类型的参数。就像某个单词在不同的上下文中具有不同的含义。
多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。多态在实现继承的过程中被广泛应用。
面向对象程序设计语言支持多态,术语称之为“one interface multiple method(一个接口,多个实现)”。简单来说,多态机制允许通过相同的接口引发一组相关但不相同的动作,通过这种方式,可以减少代码的复杂度。在某个特定的情况下应该作出怎样的动作,这由编译器决定,而不需要程序员手工干预。
在多函数程序中,许多重要的数据被声明为全局变量,这样它们才可以被所有的函数访问。每个函数又可以具有它自己的局部变量。全局变量很容易被某个函数不经意之间改变。而在一个大程序中,很难分辨每个函数都使用了哪些变量。如果我们需要修改某个外部数据的结构,我们就要修改所有访问这个数据的函数。这很容易导致bug的产生。
在结构化程序设计中,另一个严重的缺陷是不能很好的模拟真实世界的问题。这是因为函数都是面向过程的,而不是真正的对应于问题中的各个元素。
面向过程的程序设计的一些特点如下:
·强调做(算法);
·大程序被分隔为许多小程序,这些小程序称为函数;
·大多数函数共享全局数据;
·数据开放的由一个函数流向另一个函数。函数把数据从一种形式转换为另一种形式。
采用由上至下的程序设计方法。
动态绑定
绑定指的是将一个过程调用与相应代码链接起来的行为。动态绑定的意思是,与给定的过程调用相关联的代码只有在运行期才可知。它与多态和继承的联系极为紧密。一个多态引用的函数调用决定于这个引用的动态类型。
考虑图6中的“draw”方法。通过继承,每个对象都具备了这个过程。但是,对于不同的对象它的算法是不同的,因此,draw过程必须在每一个类中重新定义。在运行期,当前引用对象所对应的代码将被调用。
消息传递
一个面向对象的程序由许多对象组成,这些对象之间需要相互沟通。因此,在面向对象程序设计语言中,程序设计的主要步骤如下:
1、创建类,这些类定义了对象及其行为;
2、由类定义创建对象;
3、建立对象之间的通讯。
对象之间通过收发信息相互沟通,这一点类似于人与人之间的信息传递。信息传递的概念使得真实世界的直接模拟更易于和建立系统交流。
对于某个特定对象来说,消息就是请求执行某个过程,因此,消息的接收对象会调用一个函数(过程),以产生预期的结果。传递的消息的内容包括接收消息的对象的名字,需要调用的函数的名字,以及必要的信息。
对象就有一个生命周期。它们可以被创建和销毁。只要对象正处于其生存期,就可以与其进行通讯。
OOP的优点
OOP具有许多优点,无论是对于程序设计者或者用户来说都是如此。面向对象为软件产品扩展和质量保证中的许多问题提供了解决办法。这项技术能够大大提高程序员的生产力,并可提高软件的质量以及降低其维护费用。其主要的优点陈列于下:
1、通过继承,我们可以大幅减少多余的代码,并扩展现有代码的用途;
2、我们可以在标准的模块上(这里所谓的“标准”指程序员之间彼此达成的协议)构建我们的程序,而不必一切从头开始。这可以减少软件开发时间并提高生产效率;
3、数据隐藏的概念帮助程序员们保护程序免受外部代码的侵袭;
4、允许一个对象的多个实例同时存在,而且彼此之间不会相互干扰;
5、允许将问题空间中的对象直接映射到程序中;
6、基于对象的工程可以很容易的分割为独立的部分;
7、以数据为中心的设计方法允许我们抓住可实现模型的更多细节;
8、面向对象的系统很容易从小到大逐步升级;
9、对象间通讯所使用的消息传递技术与外部系统接口部分的描述更简单;
10、更便于控制软件复杂度。
当需要将以上所说的所有特性有机的结合于一个面向对象系统中,它们之间的相对重要性就取决于工程的类型和程序员的喜好。为了获得上述的某些优势,必须考虑很多事情。例如,对象库必须可以被重用。技术还在不停的发展,现有的产品也会很快的更新换代。如果重用没有能够实现,那么就需要进行严格的控制和管理。
易于使用的开发软件往往难以编写。面向对象程序设计工具有望解决这个问题。
面向对象程序设计语言
面向对象技术并不是某个特定语言的特权。如同结构化程序设计一样,OOP概念可以在很多语言比如C和Pascal中实现。但是,当程序越来越大时,程序设计工作会变得拙劣而混乱。而一个支持OOP概念的程序设计语言则可以让一切变得简单。
一个语言必须支持几个主要的OOP概念才能称其是面向对象的。根据所支持的OOP特性,语言可以分为以下两类:
1、基于对象的程序设计语言;
2、面向对象的程序设计语言。
基于对象的程序设计语言仅支持封装和对象辨识。
一个面向对象的程序设计语言所要支持的重要特性如下:
·数据封装
·数据隐藏和访问机制
·对象的自动初始化和清除
·操作符重载
支持对象风格程序设计的语言称为基于对象的程序设计语言。它们不支持继承和动态绑定。
Ada就是一个典型的基于对象的程序设计语言。
面向对象的程序设计不仅仅包含基于对象程序设计的特性,还支持继承和动态绑定。
OOP的应用
OOP最有前途的应用领域如下:
1、实时系统;
2、仿真和建模;
3、面相对象数据库;
4、超文本、超媒体和扩展文本;
5、AI和专家系统;
6、神经网络和并行程序设计;
7、决策支持和办公自动化系统;
8、CIM/CAM/CAD系统。
1、面向对象原本要解决什么(或者说有什么优良特性)
似乎很简单,但实际又很不简单:面向对象三要素封装、继承、多态
(警告:事实上,从业界如此总结出这面向对象三要素的一刹那开始,就已经开始犯错了!)。
封装:封装的意义,在于明确标识出允许外部使用的所有成员函数和数据项,或者叫接口。
有了封装,就可以明确区分内外,使得类实现者可以修改封装内的东西而不影响外部调用者;而外部调用者也可以知道自己不可以碰哪里。这就提供一个良好的合作基础——或者说,只要接口这个基础约定不变,则代码改变不足为虑。
继承+多态:继承和多态必须一起说。一旦割裂,就说明理解上已经误入歧途了。
先说继承:继承同时具有两种含义:其一是继承基类的方法,并做出自己的改变和/或扩展——号称解决了代码重用问题;其二是声明某个子类兼容于某基类(或者说,接口上完全兼容于基类),外部调用者可无需关注其差别(内部机制会自动把请求派发[dispatch]到合适的逻辑)。
再说多态:基于对象所属类的不同,外部对同一个方法的调用,实际执行的逻辑不同。
很显然,多态实际上是依附于继承的两种含义的:“改变”和“扩展”本身就意味着必须有机制去自动选用你改变/扩展过的版本,故无多态,则两种含义就不可能实现。
所以,多态实质上是继承的实现细节;那么让多态与封装、继承这两个概念并列,显然是不符合逻辑的。不假思索的就把它们当作可并列概念使用的人,显然是从一开始就被误导了——正是这种误导,使得大多数人把注意力过多集中在多态这个战术层面的问题上,甚至达到近乎恶意利用的程度;同时却忽略了战略层面的问题,这就致使软件很容易被他们设计成一滩稀屎(后面会详细谈论这个)。
实践中,继承的第一种含义(实现继承)意义并不很大,甚至常常是有害的。因为它使得子类与基类出现强耦合。
继承的第二种含义非常重要。它又叫“接口继承”。
接口继承实质上是要求“做出一个良好的抽象,这个抽象规定了一个兼容接口,使得外部调用者无需关心具体细节,可一视同仁的处理实现了特定接口的所有对象”——这在程序设计上,叫做归一化。
归一化使得高层的外部使用者可以不加区分的处理所有接口兼容的对象集合——就好象linux的泛文件概念一样
(1) 以过程为中心和对象为中心的比较 结构化编程方法是以过程为中心的,当面对一个问题时,该方法侧重于问题解决过程的层 次结构。面向对象的分析和设计方法侧重于对象。对象具有特定的行为和属性,行为和属性决 定了对象与其他对象的交互作用方式,以及对象本身的行为方式。2/ 一次性使用和可重用的比较 根据不同的实现,结构化过程可能无法重用。而面向对象的方法,对象是一个模块单元。 具有完备的实体,因此可以具有高度的可重用性。(3有序算法和无序算法的比较 结构化编程方法所开发的程序,其结构往往是线性的(或者说是自顶向下的)。而面向对 象的应用程序是一种基于消息或者事件驱动的程序类型。每个对象都可以向其他对象发送消 息。Windows 操作系统就是这样的程序。
1960年结构化程序设计思想诞生。C和Pascal等语言都大力提倡这种程序设计的方法发明面向对象程序设计方法的主要出发点是弥补面向过程程序设计方法中的一些缺点
1960年结构化程序设计思想诞生。C和Pascal等语言都大力提倡这种程序设计的方法发明面向对象程序设计方法的主要出发点是弥补面向过程程序设计方法中的一些缺点
1960年结构化程序设计思想诞生。C和Pascal等语言都大力提倡这种程序设计的方法发明面向对象程序设计方法的主要出发点是弥补面向过程程序设计方法中的一些缺点
1960年结构化程序设计思想诞生。C和Pascal等语言都大力提倡这种程序设计的方法发明面向对象程序设计方法的主要出发点是弥补面向过程程序设计方法中的一些缺点
面向对象编程方法的主要缺点是什么?
面向对象开发方法的主要缺点是在适应需求变化方面不够灵活。是错误的。面向对象开发方法的主要缺点包括:1、复杂度高:面向对象编程需要进行大量的类设计、继承关系的确定等工作,系统的各个模块之间通常具有复杂的相互依赖关系,这会增加开发人员的工作量和风险。2、性能问题:由于面向对象编程采用了许多抽象和...
面向对象编程相对于面向过程编程有什么优点?二者有什么区别?
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。例如五子棋,面向过程的设计思路就是首先分析问题的...
Java程序设计中举例说明面向接口编程的框架和编程要点。
面向对象里面的接口只是用来描述”我们的实现类应该具体什么样的功能而不必知道对方用什么方法做到这点”,具体实现这个功能那叫“实现类”。例子也恰恰是 Spring 里面的每个 bean 都可以当成一个组件,假设我们需要使用加密组件把一个消息写入到磁盘或发送给网络的另一方。这里面的功能性要求仅仅是“我们...
面向过程和面向对象的各自优点是什么?
简单性:面向过程的编程范式相对简单,因为它直接关注解决问题的步骤,这使得它更易于理解和实现。可移植性:面向过程的代码更容易移植到不同的硬件或操作系统上,因为它是直接针对问题的,而不是针对特定的框架或库。面向对象的优点:抽象性:面向对象编程提供了一种抽象的方式来看待问题,可以将复杂的问题...
java相关解释
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。相关内容,一起来看看! 发展历程 20世纪90年代,硬件领域出现了单片式计算机系统,这种价格低廉的系统一出现就立即引起了自动控制领域人员的注意,因为使用它可以大幅度提...
什么是面向对象的程序设计
符合OO范型的程序设计,为面向对象程序设计。OO范型有三条:1.可以定义和使用“对象”,对象是具有状态和行为的实体,对象封装了属性和方法,程序外部只能通过方法访问对象封装的数据。2.可以定义和使用“类”,类是一组有共同属性和行为的对象的抽象(按照UML说法是规格说明),对象是类的实例。3.支持继承、多态等特征。符...
.net平台上怎么理解“面向对象”的概念
1。类与实例(面向对象编程--Object-Oriented Programming)对象是一个自包含的实体,用一组可识别的特性和行为来表示。类就是具有相同的属性和功能的对象的抽象的集合。实例就是真实的对 象,实例化就是创建对象的过程,使用new关键字类创建。2。构造方法构造方法又叫构造函数,其实就是对类进行初始化...
面向对象程序设计的优点是什么?
1、维护简单面向对象程序设计的一个特征就是模块化。实体可以被表示为类以及同一名字空间中具有相同功能的类,可以在名字空间中添加一个类而不影响该名字空间的其他成员。这种特征为程序的维护提供了便捷性。2、可扩充性如果有一个具有某一种功能的类,就可以扩充这个类,创建一个具有扩充功能的类。3、...
说明“面向对象”和“面向过程”有什么区别
当程序中的其他部分发出同样的消息时,按照接收消息对象的不同能够自动执行类中相应的方法。其好处是,用户不必知道某个对象所属的类就可以执行多态行为,从而为程序设计带来更大方便。4.面向对象编程的特点 1)OOP以“对象”或“数据”为中心。由于对象自然地反映了应用领域的模块性,因此具有相对稳定性...
面向对象的语言主要有哪些
2、c++。C++是一种使用广泛的计算机程序设计语言。它是一种通用程序设计语言,支持多重编程模式,例如过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计和设计模式等。3、c#。C#是微软推出的一种基于.NET框架的、面向对象的高级编程语言。C#以.NET框架类库作为基础,拥有类似Visual Basic的快速...
穆肤米曲: 结构化编程是针对汇编那种方式的去掉了goto等让程序看起来很乱的语法,讲究的是顺序结构化; 面向对象是类的思想,通过继承多态等实现程序共享,更适合大型程序的编制,当然小程序也适合的,而且很不错,建议多多理解下
洮南市15299941289: 简述结构化程序设计与面向对象程序设计的区别与联系 - ?
穆肤米曲: 结构化程序设计简洁明了,不会像面向对象那样绕圈子.因此,编写小工具时比较适合用结构化设计,但是面向对象由于引进对象概念,大大提高了软件编写的效率,适合多人协作编写较大的软件.一个灵活,一个稳重.
洮南市15299941289: 结构化程序设计与面向对象设计主要区别 - ?
穆肤米曲: 结构化程序设计与面向对象主要的区别在于设计思维上不同,另外封装性上结构化编程比较难于封装,复用性上也不如面向对象编程. 1、设计思维. 面向过程程序设计方法的实质上是从计算机处理问题的观点来进行程序设计工作:“输入——...
洮南市15299941289: 面向对象开发方法和结构化开发方法的异同 - ?
穆肤米曲: 结构化开发方法: 早期的程序开发,如C语言,都是用结构化开发方法. 结构化开发又叫做面向过程开发,具体原理是将一个软件分为多个过程(函数)进行开发,用结构体(struct)管理数据.这种开发方式使得代码的可读性变得很低,并且...
洮南市15299941289: 结构化程序设计和面向对象程序设计的主要特征各是什么? - ?
穆肤米曲: 放心啦我会举例子的,不过得借助一下他们的原话: 结构化程序设计: 顺序结构 顺序结构表示程序中的各操作是按照它们出现的先后顺序执行的.例子:也就是说,必须按照编程语言的执行顺序;例如php(我学的就是php),它的从上到下...
洮南市15299941289: 面向对象和结构化程序设计的区别 - ?
穆肤米曲: 自己百度下啊...看看再总结下...以下看看,是否对你有帮助1..思想的区别* 结构化程序设计 思想:在编程之前,先对程序系统根据业务需要进行整体的规划,描述出系统的流程.对程序系统进行模块化分和功能分配.设计出各种图表,...
洮南市15299941289: 结构化程序设计 和 面向对象程序设计 - ?
穆肤米曲: 我来个你举个例子 比如和楼上一样的 盖房子 所谓结构化的盖法 就是把你要盖的房子拆成房间、大厅、厕所、厨房,然后分别交给4个人去设计,4个人设计好了,你在吧4个部分组合起来,成为你的房子如果是面向对象的盖法,就是你一开始就把房子设计好,房子里面那里是房间、那里是厨房、那里是厕所,都想好,然后盖好之后,再进去你的房子里面,把你的房间、厨房、大厅设计并装修好所以说结构化就是细化为几个部分,分别完成后,在进行组装 面向对像则是将整个内容分析清楚,封装成一个完整的东西后,你在进行内部细化虽然这个比喻不是很贴切,但至少应该能让你理解起来容易一些
洮南市15299941289: 什么是结构化开发方法,什么是面向对象开发方法,是比较二者的区别与联系? - ?
穆肤米曲: 面向对象优点:1、稳定性好; 2、可重用性好; 3、较易开发大型软件产品; 4、可维护性好.结构化方法是将系统看成是过程的集合,过程与数据实体之间
洮南市15299941289: java什么是结构化程序设计?什么是面向对象程序设计?二者区别 - ?
穆肤米曲: C++,C#,JAVA都由C衍生而来! C++,C#,JAVA,C都是面向过程的 Visual C++,Visal C#,Visual JAVA是面向对象的 .NET是微软的一种架构,相应的有C#.NET,VB.NET等 对于结构化,是指编程语言的结构体系 结构化语言就是将自然语言加上程序设计语言的控制结构就成了结构化语言,专门用来描述加工逻辑.所以,它既有自然语言灵活性强、表达丰富的特点,又有结构化程序的清晰易读和逻辑严密的特点. 结构化语言的显著特征是代码和数据的分离.
洮南市15299941289: 面向对象设计与结构化程序设计的区别?
穆肤米曲: 面向对象程序设计(OOP)技术汲取了结构化程序设计中好的思想,并将这些思想与一些新的、强大的理念相结合,从而给程序设计工作提供了一种全新的方法.通常,在面向对象的程序设计风格中,会将一个问题分解为一些相互关联的子集,每个子集内部都包含了相关的数据和函数.同时会以某种方式将这些子集分为不同等级,而一个对象就是已定义的某个类型的变量.当定义了一个对象,就隐含的创建了一个新的数据类型.