面向对象程序设计的发展背景,核心思想是什么

面向对象程序设计的发展背景,核心思想是什么,第1张

面向对象

面向对象(Object Oriented,OO)是当前计算机界关心的重点,它是90年代软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。

谈到面向对象,这方面的文章非常多。但是,明确地给出对象的定义或说明对象的定义的非常少——至少我现在还没有发现。其初,“面向对象”是专指在程序设计中采用封装、继承、抽象等设计方法。可是,这个定义显然不能再适合现在情况。面向对象的思想已经涉及到软件开发的各个方面。如,面向对象的分析(OOA,Object Oriented Analysis),面向对象的设计(OOD,Object Oriented Design)、以及我们经常说的面向对象的编程实现(OOP,Object Oriented Programming)。许多有关面向对象的文章都只是讲述在面向对象的开发中所需要注意的问题或所采用的比较好的设计方法。看这些文章只有真正懂得什么是对象,什么是面向对象,才能最大程度地对自己有所裨益。这一点,恐怕对初学者甚至是从事相关工作多年的人员也会对它们的概念模糊不清。

面向对象是当前计算机界关心的重点,它是90年代软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。

一、传统开发方法存在问题

1软件重用性差

重用性是指同一事物不经修改或稍加修改就可多次重复使用的性质。软件重用性是软件工程追求的目标之一。

2软件可维护性差

软件工程强调软件的可维护性,强调文档资料的重要性,规定最终的软件产品应该由完整、一致的配置成分组成。在软件开发过程中,始终强调软件的可读性、可修改性和可测试性是软件的重要的质量指标。实践证明,用传统方法开发出来的软件,维护时其费用和成本仍然很高,其原因是可修改性差,维护困难,导致可维护性差。

3开发出的软件不能满足用户需要

用传统的结构化方法开发大型软件系统涉及各种不同领域的知识,在开发需求模糊或需求动态变化的系统时,所开发出的软件系统往往不能真正满足用户的需要。

用结构化方法开发的软件,其稳定性、可修改性和可重用性都比较差,这是因为结构化方法的本质是功能分解,从代表目标系统整体功能的单个处理着手,自顶向下不断把复杂的处理分解为子处理,这样一层一层的分解下去,直到仅剩下若干个容易实现的子处理功能为止,然后用相应的工具来描述各个最低层的处理。因此,结构化方法是围绕实现处理功能的“过程”来构造系统的。然而,用户需求的变化大部分是针对功能的,因此,这种变化对于基于过程的设计来说是灾难性的。用这种方法设计出来的系统结构常常是不稳定的 ,用户需求的变化往往造成系统结构的较大变化,从而需要花费很大代价才能实现这种变化。

二、面向对象的基本概念

(1)对象。

对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。

(2)对象的状态和行为。

对象具有状态,一个对象用数据值来描述它的状态。

对象还有 *** 作,用于改变对象的状态,对象及其 *** 作就是对象的行为。

对象实现了数据和 *** 作的结合,使数据和 *** 作封装于对象的统一体中

(3)类。

具有相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。

类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。

类具有 *** 作,它是对象的行为的抽象,用 *** 作名和实现该 *** 作的方法来描述。

(4)类的结构。

在客观世界中有若干类,这些类之间有一定的结构关系。通常有两种主要的结构关系,即一般--具体结构关系,整体--部分结构关系。

①一般——具体结构称为分类结构,也可以说是“或”关系,或者是“is a”关系。

②整体——部分结构称为组装结构,它们之间的关系是一种“与”关系,或者是“has a”关系。

(5)消息和方法。

对象之间进行通信的结构叫做消息。在对象的 *** 作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种 *** 作的信息。发送一条消息至少要包括说明接受消息的对象名、发送给该对象的消息名(即对象名、方法名)。一般还要对参数加以说明,参数可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名。

类中 *** 作的实现过程叫做方法,一个方法有方法名、参数、方法体。消息传递如图10-1所示。

二、面向对象的特征

(1)对象唯一性。

每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。

(2)分类性。

分类性是指将具有一致的数据结构(属性)和行为( *** 作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。

(3)继承性。

继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。

继承性是面向对象程序设计语言不同于其它语言的最重要的特点,是其他语言所没有的。

在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。

在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承。

在软件开发中,类的继承性使所建立的软件具有开放性、可扩充性,这是信息组织与分类的行之有效的方法,它简化了对象、类的创建工作量,增加了代码的可重性。

采用继承性,提供了类的规范的等级结构。通过类的继承关系,使公共的特性能够共享,提高了软件的重用性。

(4)多态性(多形性)

多态性使指相同的 *** 作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。

多态性允许每个对象以适合自身的方式去响应共同的消息。

多态性增强了软件的灵活性和重用性。

对于面向对象的对象

(面向对象,面向对象)是计算机行业关心的重点,它是在20世纪90年代的软件开发方法的主流。面向对象的概念和应用远远超出了编程和软件开发,并扩展到一个很宽的范围内。如数据库系统,人机交互界面,应用程序架构,应用平台,分布式系统,网络管理结构,CAD技术,人工智能等领域。

它涉及到面向对象的,这篇文章非常多。然而,很显然,给定对象的定义或描述的对象的定义是非常小的 - 至少我还没有发现。它开始的“面向对象”是指具体的程序设计,封装,继承,抽象的设计方法。然而,这个定义显然已经不再适合目前的情况。面向对象的思想已经参与了软件开发的各个方面。例如,面向对象的分析(OOA,面向对象的分析),面向对象设计(OOD,面向对象设计),和我们常说的面向对象编程(OOP面向对象编程)。许多面向对象的文章,只是在面向对象的设计方法或更好的发展,需要注意的问题。请参阅以下文章只有真正知道什么是对象,什么是面向对象的,为了自己的利益最大化。这一点,恐怕对于初学者甚至数年从事相关工作的人员也模糊了他们的概念。

面向对象的计算机产业关注的焦点,它是在20世纪90年代的软件开发方法的主流。面向对象的概念和应用远远超出了编程和软件开发,并扩展到一个很宽的范围内。如数据库系统,人机交互界面,应用程序架构,应用平台,分布式系统,网络管理结构,CAD技术,人工智能等领域。

传统的开发方法存在的问题

软件的可重用性差

可重用性是同样的事情,无需或稍加重复使用性质。软件复用是软件工程追求的目标之一。

2。软件的可维护性差

软件工程,强调软件的可维护性强调文件规定最终的软件产品的重要性应该是完整的,一致的配置成分。在软件开发过程中,始终强调软件的可读性,可性和可测试性是软件质量的一个重要指标。实践证明,开发的软件,使用传统的方法,维护成本和费用仍然很高,其原因可能差,难以维持,导致可维护性差。

3。开发的软件不能满足用户的需要

传统的结构化的方法来开发大型软件系统涉及多个领域的知识,系统的动态变化发展的需要或要求的模糊时开发的软件系统往往不能真正满足的用户的使用需求。

结构化的方法来开发的软件,其稳定性,可性和可重用性都比较差,这是因为结构化性质的方法是,代表作为目标系统的功能分解全功能单进行处理,自上而下的继续分解复杂的加工处理,这一层一层分解下来,直到仅剩下容易实现的一些处理功能,到目前为止,然后使用适当的工具描述了不同的最低层。因此,围绕“过程”来实现处理功能的系统构造。然而,大多数用户对功能的需求的变化,因此,这种变化是灾难性的基于过程的设计。以这种方式设计,往往是不稳定的系统结构,在用户需求的变化往往会导致在系统配置中的变化较大,这需要很大的考虑因素,为了实现这种变化。

其次,面向对象的

(1)的基本概念的情况的目的。

对象的人学习任何东西,从最简单的整数到复杂的飞机可以被看作是一个对象,它不仅可以具体的事情,但也表示,抽象的规则,计划或事件。

(2)对象的状态和行为。

对象有一个对象来描述它的状态数据值的状态。

对象以及 *** 作,用来改变对象的状态,对象及其 *** 作的是对象的行为。

对象的组合来实现数据和 *** 作数据和 *** 作封装

(3)班的团结的对象。

抽象类的相同或相似的对象的属性。因此,对象的抽象类,这个类是一个对象,它可以说是一个类的实例的对象。

类具有属性,它是对象的状态的抽象,数据结构来描述类的属性。

类的 *** 作,它是对象的行为的抽象描述的 *** 作名称和 *** 作。

(4)结构。

在客观世界中,有某些类型的这些类之间的结构关系。通常,有两个主要的结构关系,即一般 - 的关系作为一个整体的具体结构的 - 部分的结构的关系。

① - 混凝土结构的分类结构,也可以说是“或”的关系,“is a”关系。

②整体 - 部分结构称为组装结构,它们之间的关系是“和”或“has a”关系。

(5)的消息和方法。

对象结构被称为消息之间的通信。在该对象的 *** 作,当一个消息被发送到一个对象,该消息包括:接收对象信息来执行某些 *** 作。发送一个消息,至少包括在消息中的对象的名称,以及将消息发送到的对象的名称(即,对象的名称,该方法的名称)。一般也被描述参数,参数可以知道对象的消息,知道这个名字的变量,或所有对象都知道的全局变量名。在

类的 *** 作方法调用的实现过程,方法,方法的名称,参数,方法体。通讯,如图10-1所示。

二,面向对象的特性

(1)对象唯一。

每个对象都有自己独特的身份,这个标志可以找到相应的对象。它确定了在不改变对象的整个生命周期,对象不能有相同的标识。

(2)分类。

分类将有一个一致的数据结构(属性)和行为( *** 作)的对象类。一类是一个抽象的概念,它反映的是如此重要的性质,而忽略其他一些无关的应用。任何类的划分是主观的,但它必须与特定的应用程序。

(3)继承。

继承机制是一个子类的父类自动共享的数据结构和方法,这是一个阶级之间的关系。在定义和实施的一类,可以为自己的内容了现有的类中定义一个已经存在的类的基础上,增加了许多新的内容。

继承是面向对象的编程语言最重要的功能是从其他语言,其他语言不同。

在类层次中,子类继承父类的数据结构和方法,被称为单继承。

子类继承的类层次结构中的父类的数据结构和方法,它被称为多重继承。

在软件开发中,类的继承,创造了具有开放性,可扩展性,这是组织和分类信息的有效方法,它简化了对象,创建一类的工作量,代码重的软件。

继承,类规范的层次结构。类的继承关系,能够共享,提高了软件的可重用性的公共属性。

(4)多态性(多态性)

多态性是指以相同的 *** 作或功能,各种类型的对象和不同的结果的过程中,作用于。不同的对象,并收到了同样的消息可以产生不同的结果,这种现象称为多态性。

多态性允许每个对象在一个共同的信息,以适合自身的方式。

多态性增强了软件的灵活性和可重用性。

1-4:

has-a的关系、contains-a的关系、is-a的关系;

“班级”与“学生”是has-a的关系;

“学生”与“大学生”是is-a的关系。

1-5:

正确,把两个看做是类,“清华大学”包含了“大学”的全部成员,“大学”能接受的信息,“清华大学”一样能接受到。

1-6:

过程:面向对象的分析、面向对象的设计、面向对象的实现;

5个层次:对象-类层、静态属性层、服务层、结构层 、主题层;

引入了:界面管理、任务管理、数据管理。

PS:其实我也是JAVA新手,不知答得对不对,希望这些能对你有帮助,呵呵。。。。

1、面向对象其实是现实世界模型的自然延伸。

2、现实世界中任何实体都可以看作是对象。对象之间通过消息相互作用。

3、另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例。

4、如果说传统的面向过程式编程语言是以过程为中心以算法为驱动的话,面向对象的编程语言则是以对象为中心以消息为驱动。

5、用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。

以上就是关于面向对象程序设计的发展背景,核心思想是什么全部的内容,包括:面向对象程序设计的发展背景,核心思想是什么、“对象是面向对象技术的核心所在,在面向对象程序设计中,对象是类的抽象”这句话错在哪儿、几道JAVA语言程序设计题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10212232.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存