如何理解面向对象?
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技术更看中用户的对象模型,但其目的都是以编程为目的的,而不是以用户的信息为中心的,总想把用户的信息纳入到某个用户不感兴趣的“程序对象”中。
问题六:面向对象编程怎么理解?简单点说。。 说到面向对象,就会提到面向过程,两者有区别,对两者进行一个比较就会知道什么是面向对象。可以通过举一个例子进行说明,首先面向过程:假设一杯水从一个桌面上往地上掉,在0.01秒时,还在桌面上,0.02秒时快脱离桌面,0.05秒时脱离桌面,0.1秒时掉到半空中,0.4秒时掉到地上,0.5秒时玻璃破碎,这就是面向过程的编程;而面向对象是水从桌面上落下,你看到时它已经破碎了,你看不到它的过程,只有一个结果。这就是它们的区别,不知道你可不可以接受。
问题七:编程中如何理解面向对象 50分 如果你学了汇编,就感觉这个问题轻而易举了。
因为汇编是面向过程的的编程语言,而c语言等是面向对象的编程。
简而言之,比如看到了一个苹果,想吃她,用汇编的话,首先需要寻找苹果,然后拿起,最后才是吃掉,要计算每个步骤,这就是面向过程的。
而面向对象的编程,就是以结果为导向,比如c++吧,想吃苹果,拿起来就吃了。
这并不是说面向对象的编程语言就绝对比面向过程的的编程语言高级,只是更加方便了而已,学的时候更加容易了,但计算机毕竟不是人,如果你真正懂了什么是面向过程的的编程语言,再学面向对象的编程语言轻而易举。比如,你学汇编后,再学c语言等轻松过关,但反过来,你先学c语言,再学汇编,你感觉很别扭,寸步难行。
这就是编程的并行思维和串行思维,基本上任何编程语言都是串行思维的,但人如果一直在并行思维的话,会学的很快,思维无限延伸。
问题八:java中面向对象怎么理解 就是一种抽象表达事物的思维方式;
面向对象的分析根据抽象关键的问题域来分解系统。面向对象的设计是一种提供符号设计系统的面向对象的实现过程,它用非常接近实际领域术语的方法把系统构造成“现实世界”的对象。
面向对象程序设计可以看作一种在程序中包含各种独立而又互相调用的对象的思想,这与传统的思想刚好相反:传统的程序设计主张将程序看作一系列函数的 *** ,或者直接就是一系列对电脑下达的指令。面向对象程序设计中的每一个对象都应该能够接受数据、处理数据并将数据传达给其它对象,因此它们都可以被看作一个小型的“机器”,即对象。
其他的我不说了,先给你解释一些基本的概念吧:
什么是对象?
对象是一个在时间和空间中存在的实体。简单地(感觉不大对)地说:对象就是你可以数得出数量的东西,比如:一朵云,一条河流,一个字符,一个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技术更看中用户的对象模型,但其目的都是以编程为目的的,而不是以用户的信息为中心的,总想把用户的信息纳入到某个用户不感兴趣的“程序对象”中。
问题六:面向对象编程怎么理解?简单点说。。 说到面向对象,就会提到面向过程,两者有区别,对两者进行一个比较就会知道什么是面向对象。可以通过举一个例子进行说明,首先面向过程:假设一杯水从一个桌面上往地上掉,在0.01秒时,还在桌面上,0.02秒时快脱离桌面,0.05秒时脱离桌面,0.1秒时掉到半空中,0.4秒时掉到地上,0.5秒时玻璃破碎,这就是面向过程的编程;而面向对象是水从桌面上落下,你看到时它已经破碎了,你看不到它的过程,只有一个结果。这就是它们的区别,不知道你可不可以接受。
问题七:编程中如何理解面向对象 50分 如果你学了汇编,就感觉这个问题轻而易举了。
因为汇编是面向过程的的编程语言,而c语言等是面向对象的编程。
简而言之,比如看到了一个苹果,想吃她,用汇编的话,首先需要寻找苹果,然后拿起,最后才是吃掉,要计算每个步骤,这就是面向过程的。
而面向对象的编程,就是以结果为导向,比如c++吧,想吃苹果,拿起来就吃了。
这并不是说面向对象的编程语言就绝对比面向过程的的编程语言高级,只是更加方便了而已,学的时候更加容易了,但计算机毕竟不是人,如果你真正懂了什么是面向过程的的编程语言,再学面向对象的编程语言轻而易举。比如,你学汇编后,再学c语言等轻松过关,但反过来,你先学c语言,再学汇编,你感觉很别扭,寸步难行。
这就是编程的并行思维和串行思维,基本上任何编程语言都是串行思维的,但人如果一直在并行思维的话,会学的很快,思维无限延伸。
问题八:java中面向对象怎么理解 就是一种抽象表达事物的思维方式;
面向对象的分析根据抽象关键的问题域来分解系统。面向对象的设计是一种提供符号设计系统的面向对象的实现过程,它用非常接近实际领域术语的方法把系统构造成“现实世界”的对象。
面向对象程序设计可以看作一种在程序中包含各种独立而又互相调用的对象的思想,这与传统的思想刚好相反:传统的程序设计主张将程序看作一系列函数的 *** ,或者直接就是一系列对电脑下达的指令。面向对象程序设计中的每一个对象都应该能够接受数据、处理数据并将数据传达给其它对象,因此它们都可以被看作一个小型的“机器”,即对象。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询