"面向对象程序设计"为什么叫面向对象怎么解释,通俗易懂

"面向对象程序设计"为什么叫面向对象怎么解释,通俗易懂,第1张

面向对象(Object

Oriented,OO)是软件开发方法面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术

发展到一定阶段后的产物。

⑴对象。

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

⑵对象的状态和行为。

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

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

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

⑶类。

具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象,类实际上就是一种数据类型。

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

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

⑷类的结构。

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

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

a”关系。

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

a”关系。

⑸消息和方法。

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

类中 *** 作的实现过程叫做方法,一个方法有方法名、返回值、参数、方法体。

面向对象就是一种开发软件的方法,核心是对象

1什么是对象?

对象是一个在时间和空间上存在的事物。比如你电脑屏幕上显示的一个字符、一个人、一只狗、一个程序、一个int等等,他们都在时间上和空间上存在。

2什么是类?

简单的说类是一组对象,这组对象共享相同的行为和属性以及相同的结构(就是定义类的结梗

3什么是封装?

封装这个术语有两层含义:

第一层含义是指的是将数据和处理使用这些数据的函数放在同一个结构里;

第二层含义指的是将一个对象或者一个模块的复杂的、易变的部分隐藏起来,提供一个简单的、固定的对外借口。

4什么是继承?

继承是一种层次结构,这种层次结构描述了“是一种”关系(如:玫瑰是一种花)或者实现了某种程度的代码重用

5什么是组合?

组合是一种层次结构,这种层次结构描述了“有”关系,包括物理的和逻辑的比如人有手,有脚,这就是物理的组合;你有一块钱,这是逻辑的组合,因为钱不是你的组成部分。

6什么是多态?

多态指的是一个名字,可以代表一些不同的对象,只要这些对象有共同的基类即可,这样有这个名字所代表的对象可以以不同的方式来响应同一个消息了。

如:

class Person {

public:

virtual void speek() = 0;

virtual ~Person() {}

};

class Chinese : public Person {

public:

void speek() {

std::cout << "你好" << std::endl;

}

};

class English : public Person {

public:

void speek() {

std::cout << "Hello" << std::endl;

}

};

void go(Person &s) {//这里的s可以代表Chinese、English的对象

sspeek();

}

int main() {

Chinese c;

English e;

go(c);

go(e);

std::cinget();

}

好了,其他的不讲了。有疑问的可以

建议看一下国外的计算机教材。

其实还有很多啊。。。 自己找本国外教材看看,不是那么枯燥的。。。

问题一:什么是面向对象程序设计 面向对象:打个比方,就是你做一次菜,过程是起火,放油,炒菜,起锅,吃饭,这就是面向对象,效率高

面向过程,就是每一个细节:比如你要先把或开到合适的位置然后还要洗菜 ,等油热了,才能开始炒菜,然后调料,,起锅,到碗里,吃饭 适合写高质量代码

C语言是面向过程,C++ , java 则都是面向对象

C是中级语言,面向对象是高级语言才有的本事,汇编 ,机器码2进制都是低级语言

问题二:什么是面向对象编程的思想 在这里,万事万物皆对象把现实世界中的每一个物体都看作一个对象,每个对象都有固有的属性和方法,比如把人看作一个对象,属性有:眼睛鼻子啥的,而方法有:吃穿住行等。而面向对象最主要的特点是:封装,继承,多态封装,就把所有的属性都放置在一个固定的地方,然后提供一个接口供你使用,而你只能够使用这些属性,而不用知道它们是如何的定义的。继承,就像儿子从父亲那里继承遗产或者其他什么东西一样的,如果子类继承自父类,那他不仅有父类的属性和方法,也拥有自己的属性和方法多态:主要讲的是重写和重载(这两者的区别查查百度),主要是讲子类如何使用父类的方法,重载就好象,父亲教给孩子种地的方法,孩子学会之后,改变其中的某一些条件来 *** 作,但还没有离开父亲所教的方法,而重写则是孩子干脆发明或者引用一种新的方法来种地总之:

问题三:面向对象编程是什么意思 它是一种编程风格,就是把一切东西看成一个个对象,比如人,车,面包,等等,然后把这些对象拥有的属性变量,比如年龄,民族,工作地点,变质期,寿命,还有 *** 作这些属性变量的函数打包成一个类来表示,这个类的一个抽象就是一个对象,比如人这个类包含一些属性,比如年龄,名字,住址等,他还有一些对别人告诉这些属性的功能,比如:说,看,走等!!这就是的面向对象的特点!!!

问题四:什么是面向对象编程,它有哪些好处 面向对象至今还没有统一的概念,定义为:按人们认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世界分析、设计、实现软件的办法。通过面向对象的理念使计算机软件系统能与现实世界中的系统一一对应。

面向对象方法(Object-Oriented Method)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO (Object-Oriented)方法,是建立在“对象”概念基础上的方法学。对象是由数据和容许的 *** 作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。而每继承性是对具有层次关系的类的属性和 *** 作进行共享的一种方式。所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。

使用面向对象思想进行开发有以下优点:

1、易维护

采用面向对象思想设计的结构,可读性高,由于继承的存在,即使改变需求,那么维护也只是在局部模块,所以维护起来是非常方便和较低成本的。

2、质量高

在设计时,可重用现有的,在以前的项目的领域中已被测试过的类使系统满足业务需求并具有较高的质量。

3、效率高

在软件开发时,根据设计的需要对现实世界的事物进行抽象,产生类。使用这样的方法解决问题,接近于日常生活和自然的思考方式,势必提高软件开发的效率和质量。

4、易扩展

由于继承、封装、多态的特性,自然设计出高内聚、低耦合的系统结构,使得系统更灵活、更容易扩展,而且成本较低。

问题五:在编程中的面向对象的含义是什么呢? 5分 面向对象是相对于面向过程而言的,面向对象相矗面向过程有很多优点。比如,面向对象的一个特点就是继承,只要我们的程序用面向对象的方法写出来了,当客户要求改变程序的作用时,我们只要在原来的程序上继承一个新的类的可以完成;而面向过程很可能要把原来的程序推到,再重新编写,这样就会很麻烦。从某一个方面说,就是面向对象程序设计的可变化更好。

问题六:面向对象编程是什么意思 形象点 15分 最简单地说就是你写代码的时候用到类、对象、继承就是面向对象编程了。

问题七:编程中说的面向对象是什么意思? 面向对象是一种新兴的程序设计方法,或者说它是一种新的程序设计范型,其基本思想是使用对象,类,继承,封装,消息等基本概念来进行程序设计。

它是从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式,强调直接以问题域(现实世界)中的事物为中心来思考问题,认识问题,并根据这些事物的本质特点,把它们抽象地表示为系统中的对象,作为系统的基本构成单位(而不是用一些与现实世界中的事物相关比较远,并且没有对应关系的其它概念来构造系统)。这可以使系统直接地映射问题域,保持问题域中事物及其相互关系的本来面貌。

从程序设计的角度来看,面向对象的程序设计语言必须有描述对象及其相互之间关系的语言成分。这些程序设计语言可以归纳为以下几类:系统中一切皆为对象;对象是属性及其 *** 作的封装体;对象可按其性质划分为类,对象成为类的实例;实例关系和继承关系是对象之间的静态关系;消息传递是对象之间动态联系的唯一形式,也是计算的唯一形式;方法是消息的序列。

问题八:面向对象编程的对象和类是什么意思 c++ 概念:面向对象的程序设计(Object-Oriented Programming,简记为OOP)立意于创建软件重用代码,具备更好地模拟现实世界环境的能力,这使它被公认为是自上而下编程的优胜者。它通过给程序中加入扩展语句,把函数“封装”进编程所必需的“对象”中。面向对象的编程语言使得复杂的工作条理清晰、编写容易。说它是一场革命,不是对对象本身而言,而是对它们处理工作的能力而言。对象并不与传统程序设计和编程方法兼容,只是部分面向对象反而会使情形更糟。除非整个开发环境都是面向对象的,否则对象产生的好处还没有带来的麻烦多。有人可能会说PHP不是一个真正的面向对象编程的语言, PHP 是一个混合型 语言,你可以使用面向对象编程,也可以使用传统的过程化编程。然而,对于大型项目的开发,你可能想需要在PHP中使用纯的面向对象编程去声明类,而且在你的项目开发只用对象和类。随着项目越来越大,使用面向对象编程可能会有帮助,面向对象编程代码很容易维护,容易理解和重复使用,这些就是软件工程的基础。在基于Web的项目中应用这些概念就成为将来网站成功的关键。 对象(Object)是问题域或实现域中某些事物的一个抽象,它反映此事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行 *** 作的一组服务的封装体。 关于对象要从两方面理解:一方面指系统所要处理的现实世界中的对象;另一方面对象是计算机不直接处理的对象,而是处理相应的计算机表示,这种计算机表示也称为对象。简单的来说,一个人就是一个对象,一个尺子也可以说是个对象。当这些对象可以用数据直接表示时,我们就称他为属性,尺子的度量单位可以是厘米,公尺或英尺,这个度量单位就是尺子的属性。

问题九:什么叫做面向对象编程 简记为OOP)立意于创建软件重用代码,具备更好地模拟现实世界环境的能力,这使它被公认为是自上而下编程的优胜者。它通过给程序中加入扩展语句,把函数“封装”进编程所必需的“对象”中。面向对象的编程语言使得复杂的工作条理清晰、编写容易。说它是一场革命,不是对对象本身而言,而是对它们处理工作的能力而言。对象并不与传统程序设计和编程方法兼容,只是部分面向对象反而会使情形更糟。除非整个开发环境都是面向对象的,否则对象产生的好处还没有带来的麻烦多。有人可能会说PHP不是一个真正的面向对象编程的语言, PHP 是一个混合型 语言,你可以使用面向对象编程,也可以使用传统的过程化编程。然而,对于大型项目的开发,你可能想需要在PHP中使用纯的面向对象编程去声明类,而且在你的项目开发只用对象和类。随着项目越来越大,使用面向对象编程可能会有帮助,面向对象编程代码很容易维护,容易理解和重复使用,这些就是软件工程的基础。在基于Web的项目中应用这些概念就成为将来网站成功的关键。

对象(Object)是问题域或实现域中某些事物的一个抽象,它反映此事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行 *** 作的一组服务的封装体。 关于对象要从两方面理解:一方面指系统所要处理的现实世界中的对象;另一方面对象是计算机不直接处理的对象,而是处理相应的计算机表示,这种计算机表示也称为对象。简单的来说,一个人就是一个对象,一个尺子也可以说是个对象。当这些对象可以用数据直接表示时,我们就称他为属性,尺子的度量单位可以是厘米,公尺或英尺,这个度量单位就是尺子的属性。

在PHP里我们可以定义一个类,类(Class)就是指变量与一些使用这些变量的函数的 。PHP是一种松散类型的语言,所以通过类型重载不起作用,通过参数的个数不同来重载也不起作用。 有时在面向中重载构造函数非常好,这样你可以通过不同的方法创建对象(传递不同数量的参数)。在PHP中就是通过类来实现的。

在PHP中是通过类来完成信息封装的,在PHP中定义类的语法是:

在定义类时你可以按自已的喜好的格式进行定义,但最好能保持一种标准,这样开发起来会更有效些。

数据成员在类中使用var声明来定义,在给数据成员赋值之前,它们是没有类型的。一个数据成员可以是一个整数,一个数组,一个相关数组(Associative Array)或者是一个对象。

下面是一个类定义的实际例子:

这是一个很普通定义类的简单例子,用于显示学生的学习成绩,类名为Student,Student类包涵了一个学生的基本属性:姓名、性别、学号、英语成绩和数学成绩。

function我们称之为在类中被定义的函数,在函数中访问类成员变量时,你应该使用$this->var_name,其中var_name指的是类中被声明的变量,否则对一个函数来说,它只能是局部>>

面向对象

面向对象(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)多态性(多形性)

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

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

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

对象,强调物体属性, 比如实现逻辑 物体A 移动到B点,

对象思想就是要你想象 你吧A 看成什么 你可以吧它看成车, 用车轮的方式(方法)让它走动, 可以看成托运(方法)的方式拉过去。

面向对象的方法 是一类物体的属性 所具备的 行为,理论上 可以参照面向过程的函数去理解

儿面向过程, 我不关心你用什么方式,看成什么 ,管你是推,是拽,只要你运过来就行 相对而言 没有针对性

楼主可以 设想一下网络游戏, 你玩的游戏 的怪物, 是分种类的, 他们都是自动的东西, 没人去手动生成, 一类怪物 有一类招数和样子, 行为属性, 这就是对象思想

“面向对象的设计”里面的“面向”是个形象的翻译,其实本意是“基于”对象的设计,是一种程序设计方法,这之前的程序设计方法是“基于”过程的,编程就是指定计算机运行的详细过程,有顺序、分支、循环三种基本机构。“基于”对象的程序设计颠覆了那个传统,程序设计者的人物是规定程序处理的各个对象的属性和方法,以及对象对事件的响应,设定好这些以后程序就完工了,然后交给系统和用户自行运作,结果可能有无限种可能。这样的程序设计方法,设计者设计时主要面对各类对象,所以叫做“面向对象的设计”。

用大白话说,在做个对比,在举个例子你就懂了!!

说到基于基于面向对象程序设计(后面就不用了就“基于对象”)

在这之前是“基于过程”

过程和对象的区别(主要):

过程没有办法重复使用。例如:1+2+3这就是一个过程(答案是6)

---!!!它没有办法重复使用 (当改为4+5+6你又要重新写代码)

说对象了它可以重复使用。列如:a+b+c命名为 A (a,b,c)对象

A是对象名, a,b,c分别是对象的参数, a+b+c是对象的主体(对象的过程)

----!!!!!他可以重复使用

A(1,2,3)这就是对象调用 结果是6;(你不需要写成1+2+3)

A(4,5,6)这就是对象调用 结果是15;(你不需要写成4+5+6)

当然这是个例子(对象的主体比较简单)

-------------所以对象就是有相同过程的集合-------------------

~~~~~~~~~~~为什么叫对象 因为这是从object翻译的(外国人那边)~~~

以上就是关于"面向对象程序设计"为什么叫面向对象怎么解释,通俗易懂全部的内容,包括:"面向对象程序设计"为什么叫面向对象怎么解释,通俗易懂、面向对象程序设计的重要概念有哪些、什么叫做面向对象编程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9495741.html

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

发表评论

登录后才能评论

评论列表(0条)

保存