如何理解面向对象

如何理解面向对象,第1张

问题一:面向对象怎么解释? 面向对象是一系列用对象观点分析、设计以及实现软件的方法和经验的总和(个人总结的),它以对象为核心,努力构建一个高内聚、低耦合的软件。分析和设计一款软件时,我们要建立一系列的模型。在面向对象中使用的模型称为面向对象模型(简称对象模型),基于六大基本原则:抽象、封装、层次结构、模块化、类型、持久、并发,其中前四个原则是必须的。

其他的我不说了,先给你解释一些基本的概念吧:

什么是对象?

对象是一个在时间和空间中存在的实体。简单地(感觉不大对)地说:对象就是你可以数得出数量的东西,比如:一朵云,一条河流,一个字符,一个int,一个函数等等。

什么是类?

一组对象就构成了一类。比如:一个班的所有学生就构成了一个类,这个类的名字叫班。类定义了这组对象共同的行为和属性。

什么是多态?

多态是类型理论的一个概念,指的是一个名字可以指代一组不同类型的对象(这些对象的类必须有共同的基类),这样由这个名字指代的不同对象就可以以不同的方式来响应同一组消息。

什么是消息?

一个消息,就是指一个对象调用了另一个对象的方法或者成员函数。

什么是静态类型?

静态类型指的是对象或者表达式的类型在编译器编译时就被编译器确定了。C语言C++语言的普通函数调用就是静态类型的。 静态类型也被称为早捆绑或者静态编联。

什么是动态类型?

动态类型指的是对象或者表达式的类型直到运行时才能确定,动态类型是动态多态的基础。C++语言要使用动态类型必须在成员函数的声明前加上关键字(virtual)。

什么是封装?

封装有两层含义:

1指的是将一个对象的内部细节(通常是可变和易变的)和外部界面(通常是固定的)分割开来的过程,也就是将对象的本质和实现细节分开来的过程。

2指的是将数据和行为放到一起形成一个结构(称为l类)的能力。

其他的不说了。。。。。。

问题二:怎么理解面向对象程序设计? 面向对象程序设计的基本概念:面向对象, 概括地说, 就是把问题抽象为对象, 设置属性(数据) , 指定事件或处理方式(代码) 来达到目的, 强调从问题域的概念到软件程序和界面的直接映射。面向对象程序设计中的概念主要包括:对象、类、数据抽象、继承、动态绑定、数据封装、多态性、消息传递。通过这些概念面向对象的思想得到了具体的体现。面向对象程序设计的基本特征1)对象:对象是运行期的基本实体,它是一个封装了数据和 *** 作这些数据的代码的逻辑实体。2)类:类是具有相同类型的对象的抽象。一个对象所包含的所有数据和代码可以通过类来构造。3)封装性:封装是一种信息隐蔽技术,它体现于类的说明,是对象的重要特性。封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性(对象能接受哪些消息,具有那些处理能力),而对象的内特性(保存内部状态的私有数据和实现加工能力的算法)对用户是隐蔽的。封装的目的在于把对象的设计者和对象者的使用分开,使用者不必知晓行为实现的细节,只须用设计者提供的消息来访问该对象。4)继承性:继承性是子类自动共享父类之间数据和方法的机制。它由类的派生功能体现。一个类直接继承其它类的全部描述,同时可修改和扩充。继承具有传递性。继承分为单继承(一个子类只有一父类)和多重继承(一个类有多个父类)。类的对象是各自封闭的,如果没继承性机制,则类对象中数据、方法就会出现大量重复。继承不仅支持系统的可重用性,而且还促进系统的可扩充性。5)多态性:对象根据所接收的消息而做出动作。同一消息为不同的对象接受时可产生完全不同的行动,这种现象称为多态性。利用多态性用户可发送一个通用的信息,而将所有的实现细节都留给接受消息的对象自行决定,如是,同一消息即可调用不同的方法。例如:Print消息被发送给一图或表时调用的打印方法与将同样的Print消息发送给一正文文件而调用的打印方法会完全不同。多态性的实现受到继承性的支持,利用类继承的层次关系,把具有通用功能的协议存放在类层次中尽可能高的地方,而将实现这一功能的不同方法置于较低层次,这样,在这些低层次上生成的对象就能给通用消息以不同的响应。在OOPL中可通过在派生类中重定义基类函数(定义为重载函数或虚函数)来实现多态性。6)动态绑定绑定指的是将一个过程调用与相应代码链接起来的行为。动态绑定是指与给定的过程调用相关联的代码只有在运行期才可知的一种绑定,它是多态实现的具体形式。7)消息传递:对象之间需要相互沟通,沟通的途径就是对象之间收发信息。消息内容包括接收消息的对象的标识,需要调用的函数的标识,以及必要的信息。消息传递的概念使得对现实世界的描述更容易。面向对象语言一个语言要称为面向对象语言必须支持几个主要面向对象的概念。根据支持程度的不同,通常所说的面向对象语言可以分成两类:基于对象的语言,面向对象的语言。基于对象的语言仅支持类和对象,而面向对象的语言支持的概念包括:类与对象、继承、多态。举例来说,Ada就是一个典型的基于对象的语言,因为它不支持继承、多态,此外其他基于对象的语言还有Alphard、CLU、Euclid、Modula。面向对象的语言中一部分是新发明的语言,如Smalltalk、Java,这些语言本身往往吸取了其他语言的精华,而又尽量剔除他们的不足,因此面向对象的特征特别明显,充满了蓬勃的生机;另外一些则是对现有的语言进行改造,增加面向对象的特征演化而来的。

问题三:怎样理解面向对象和面向过程 面向过程 倾向于我们做一件事的流程,先做什么,然后做什么,最后做什么。更接近于机器的实际计算模型。 面向对象(Object-Oriented) 倾向于建立一个对象模型,它能够近似的反映应用领域内的实体之间的关系,其本质是更接近于一种人类认知事物所采用的哲学观的计算模型。 在OO中,对象作为计算主体,拥有自己的名称,状态以及接受外界消息的接口。在对象模型中,产生新对象,旧对象销毁,发送消息,响应消息就构成OO计算模型的根本。 然而CPU并不理解对象和类,它依然在执着的先执行第一行代码,然后第二行…………所以它的执行过程依然是程序化的。 举个例子,盖一座大楼,你想到的是楼怎么盖,哪里要有柱子,哪里要有梁,哪里楼梯等等(这就是面向对象),至于柱子该怎么建,用什么建,方的圆的,等等,这就是面向过程。

问题四:面向对象怎么理解 首先你要理解对象的含义。

对象是什么?你需要了解之前,你要知道类,有类之后才会有对象。

为什么创建类? 类因为可以封装,继承,派生 等一系列便捷的 *** 作。

面向对象的理解: 我们需要没一个对象都能接受,处理,传递数据。

你也可以理解为 是对类的一系列 *** 作

问题五:怎么理解面向对象编程? 我觉得没必要去深究他的意思。

按我的理解,面向对象编程,主要是将我们实际生活中的对象经过抽象,将它定义成为一个类,通过类的属性和方法来模拟生活中的这个对象。这样使得程序更容易结构化、抽象起来更方便。

面向对象技术最初是从面向对象的程序设计开始的, 面向对象编程并不困难

它的出现以60年代simula语言为标志。8浮年代中后期,面向对象程序设计逐渐成熟,被计算机界理解和接受,人们又开始进一步考虑面向对象的开发问题。这就是九十年代以Microsoft Visual系列OOP软件的流行的背景。 传统的结构化分析与设计开发方法是一个线性过程,因此,传统的结构化分析与设计方法要求现实系统的业务管理规范,处理数据齐全,用户能全面完整地其业务需求。 传统的软件结构和设计方法难以适应软件生产自动化的要求,因为它以过程为中心进行功能组合,软件的扩充和复用能力很差。 对象是对现实世界实体的模拟,因面能更容易地理解需求,即使用户和分析者之间具有不同的教育背景和工作特点,也可很好地沟通。 区别面向对象的开发和传统过程的开发的要素有:对象识别和抽象、封装、多态性和继承。 对象(Object)是一个现实实体的抽象,由现实实体的过程或信息牲来定义。一个对象可被认为是一个把数据(属性)和程序(方法)封装在一起的实体,这个程序产生该对象的动作或对它接受到的外界信号的反应。这些对象 *** 作有时称为方法。对象是个动态的概念,其中的属性反映了对象当前的状态。 类(Class)用来描述具有相同的属性和方法的对象的 。它定义了该 中每个对象所共有的属性和方法。对象是类的实例。 由上分析不难看出,尽管OOP技术更看中用户的对象模型,但其目的都是以编程为目的的,而不是以用户的信息为中心的,总想把用户的信息纳入到某个用户不感兴趣的“程序对象”中。

问题六:面向对象编程怎么理解?简单点说。。 说到面向对象,就会提到面向过程,两者有区别,对两者进行一个比较就会知道什么是面向对象。可以通过举一个例子进行说明,首先面向过程:假设一杯水从一个桌面上往地上掉,在001秒时,还在桌面上,002秒时快脱离桌面,005秒时脱离桌面,01秒时掉到半空中,04秒时掉到地上,05秒时玻璃破碎,这就是面向过程的编程;而面向对象是水从桌面上落下,你看到时它已经破碎了,你看不到它的过程,只有一个结果。这就是它们的区别,不知道你可不可以接受。

问题七:编程中如何理解面向对象 50分 如果你学了汇编,就感觉这个问题轻而易举了。

因为汇编是面向过程的的编程语言,而c语言等是面向对象的编程。

简而言之,比如看到了一个苹果,想吃她,用汇编的话,首先需要寻找苹果,然后拿起,最后才是吃掉,要计算每个步骤,这就是面向过程的。

而面向对象的编程,就是以结果为导向,比如c++吧,想吃苹果,拿起来就吃了。

这并不是说面向对象的编程语言就绝对比面向过程的的编程语言高级,只是更加方便了而已,学的时候更加容易了,但计算机毕竟不是人,如果你真正懂了什么是面向过程的的编程语言,再学面向对象的编程语言轻而易举。比如,你学汇编后,再学c语言等轻松过关,但反过来,你先学c语言,再学汇编,你感觉很别扭,寸步难行。

这就是编程的并行思维和串行思维,基本上任何编程语言都是串行思维的,但人如果一直在并行思维的话,会学的很快,思维无限延伸。

问题八:java中面向对象怎么理解 就是一种抽象表达事物的思维方式;

面向对象的分析根据抽象关键的问题域来分解系统。面向对象的设计是一种提供符号设计系统的面向对象的实现过程,它用非常接近实际领域术语的方法把系统构造成“现实世界”的对象。

面向对象程序设计可以看作一种在程序中包含各种独立而又互相调用的对象的思想,这与传统的思想刚好相反:传统的程序设计主张将程序看作一系列函数的 ,或者直接就是一系列对电脑下达的指令。面向对象程序设计中的每一个对象都应该能够接受数据、处理数据并将数据传达给其它对象,因此它们都可以被看作一个小型的“机器”,即对象。

其实你这个问题在每一本C++的书上都有

c是面向过程的语言,而C++既能面向对象又能面向过程

对象应该学C++的老手都知道吧:就是用类封装起来的一个一个的东西

比如一个类class Human,后面可以定义它的属性(成员数据、成员函数等)

一个类就像人类这种类一样,它可以有它的子类(男人、女人、黑人、白人之类的),也可以父类(哺乳动物、生物之类的)但每一个类的对象(每一个人)不可能全相同,否则类就没有意义了,所以每个对象有它自己的数据,就像人都有自己的个性一样

而成员数据就像人的内脏、五官组成一样

因此大家关心的是一个对象,而不是它的内脏这种东西,对象就做到了这一点,你完全可以很简单地了解它,使用它,而不用关心它的内在是怎样工作的,就像大多数人会开车却不懂汽车里面到底怎么运行的一样,

但C的话一切都要靠自己写,没有对象概念,不能直接使用对象,就是面向过程了

说白了:一个对象就是一个整体,就像普通的数据类型的一样,不过它更复杂

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。把上面每个步骤用分别的函数来实现,问题就解决了。

而面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为 1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的i变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。

可以明显地看出,面向对象是以功能来划分问题,而不是步骤。同样是绘制棋局,这样的行为在面向过程的设计中分散在了总多步骤中,很可能出现不同的绘制版本,因为通常设计人员会考虑到实际情况进行各种各样的简化。而面向对象的设计中,绘图只可能在棋盘对象中出现,从而保证了绘图的统一。

功能上的统一保证了面向对象设计的可扩展性。比如我要加入悔棋的功能,如果要改动面向过程的设计,那么从输入到判断到显示这一连串的步骤都要改动,甚至步骤之间的循序都要进行大规模调整。如果是面向对象的话,只用改动棋盘对象就行了,棋盘系统保存了黑白双方的棋谱,简单回溯就可以了,而显示和规则判断则不用顾及,同时整个对对象功能的调用顺序都没有变化,改动只是局部的。

相关举例如下:

1、Smalltalk:

Smalltalk被公认为历史上第二个面向对象的程序设计语言和第一个真正的集成开发环境 (IDE)。由Alan Kay,Dan Ingalls,Ted Kaehler,Adele Goldberg等于70年代初在Xerox PARC开发。

Smalltalk对其它众多的程序设计语言的产生起到了极大的推动作用,主要有:Objective-C,Actor, Java 和Ruby等。90年代的许多软件开发思想得利于Smalltalk,例如Design Patterns, Extreme Programming(XP)和Refactoring等。

2、Eiffel:

Eiffel语言是继Smalltalk-80之后的另一个"纯"OOPL。这种语言是由OOP领域中著名的专家Bertrand Meyer等人20世纪80年代后期在ISE公司(Interactive Software Engineering Inc)开发的,它的主要特点是全面的静态类型化、有大量的开发工具、支持多继承。

3、C++:

C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。

C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。

4、Java:

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。

Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

区别:

1面向对象:C语言是结构化和模块化的面向过程的语言,C++语言是面向对象的程序设计语言。

2编程思想:C是基于过程的,强调的是程序的功能,以函数(功能)为中心。C++是面向对象的,强调程序的分层、分类,以抽象为基础,进行对象的定义与展示,即程序设计。

3函数的松散程度:C语言有标准的函数库,它们松散的,只是把功能相同的函数放在一个头文件中;而C++对于大多数的函数都是有集成的很紧密。

4图像处理能否运用:C语言标准中不包括图形处理;而C++可以图像处理。

5文件组织程度:C语言对程序的文件的组织是松散的,几乎是全要程序处理;而c++对文件的组织是以工程,各文件分类明确。

扩展资料:

1C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

2C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。

3C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

参考资料:

百度百科——C语言

百度百科——C++

以上就是关于如何理解面向对象全部的内容,包括:如何理解面向对象、c语言和c++语言有什么区别什么叫做面向对象程序设计c语言不是吗各自优点求生动解释,谢谢。、在C语言中,什么叫做“面向对象”,什么叫做“面向过程”等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存