类和对象的区别

笔试题之三:类和对象的区别

类是对象的抽象,对象是类的具体实例。

类是抽象的,不占用内存,而对象是具体的,占有内存空间。

例如:类就是水果,对象就是苹果。


继承与多态

多态性指用一个名字定义不同的函数,这函数执行不同但又类似的操作,从而实现“一个接口,多种方法”。

多态性的实现与静态联编 动态联编有关。

静态联编支持的多态性称为编译时的多态性,也称静态多态性,它可以通过函数重载和运算符重载实现。

动态联编支持的多态性称为运行时的多态性,也称动态多态性,它是是通过继承和虚函数实现的。


函数重载的意义在于他能用同一个名字访问一组相关的函数。

继承是指一个对象可以直接使用另一个对象的属性和方法,通过继承机制,可以利用已有的数据类型来定义新的数据类型。


虚函数是重载的另一种表示,允许虚函数调用与函数体之间的联系在运行时才建立。

构造函数不能是虚函数,但析构函数可是以虚函数。


纯虚函数:是一个在基类中说明的虚函数,他在该基类中没有定义,但要求在它的派生类中定义自己的版本。

纯虚函数的一般形式:virtual type funcname(paremeter...)=0


抽象类:一个类至于少有一个纯虚函数的类,抽象类提供了处理各种不同派生类的统一接口,将实现的责任交给了派生类。


1.类和对象的区别

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

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

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

  (2)类的结构

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

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

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

  (3)对象

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

  (4)对象的状态和行为

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

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

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

(5)消息和方法

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

类(Class)实际上是对某种类型对象定义变量和方法的原型。它表示对现实生活中一类具有共同特征的事物的抽象,是面向对象编程的基础。

类是对某个对象的定义。它包含有关对象动作方式的信息,包括它的名称、方法、属性和事件。实际上它本身并不是对象,因为它不存在于内存中。当引用类的代码运行时,类的一个新的实例,即对象,就在内存中创建了。虽然只有一个类,但能从这个类在内存中创建多个相同类型的对象。

  可以把类看作“理论上”的对象,也就是说,它为对象提供蓝图,但在内存中并不存在。从这个蓝图可以创建任何数量的对象。从类创建的所有对象都有相同的成员:属性、方法和事件。但是,每个对象都象一个独立的实体一样动作。例如,一个对象的属性可以设置成与同类型的其他对象不同的值。

对象(object)是一件事、一个实体、一个名词,可以获得的东西,可以想象有自己的标识的任何东西。对象是的实例化。一些对象是活的,一些对象不是。

比如这辆汽车、这个人、这间房子、这张桌子、这株植物、这张支票、这件雨衣。概括来说就是:万物皆对象。

1、类是对象的抽象;对象是类的实例。
2、类不占用内存空间,对象占用存储空间。

对象是一个抽象概念,你可以说类是对象,也可以说实例是对象。类是代码,实例是数据,代码是设计期的,数据是运行期的。而对象则贯穿整个设计阶段和运行阶段以及维护阶段。

我们说面向对象(Object-Oriented),而不是面向类(Class-Oriented),也不是面向实例(Instance-Oriented),那是因为对象作为抽象概念已经包含了类和实例,而且对象不止是类和实例,还包含了他们的现实意义。

任何无视现实意义,随意组装一些类,这样的代码属于面向类(Class-Oriented),但不是面向对象。因此并不是任何用C++和Java写出来的代码就是面向对象,但是所有的C程序也不一定都不是面向对象。

struct A
{
};

这是类,也是对象。

A c;
类和对象的区别
1,类是一个抽象的概念,它不存在于现实中的时间/空间里,类只是为所有的对象定义了抽象的属性与行为。就好像“Person(人)”这个类,它虽然可以包含很多个体,但它本身不存在于现实世界上。
2,对象是类的一个具体。它是一个实实在在存在的东西。
3,类是一个静态的概念,类本身不携带任何数据。当没有为类创建任何对象时,类本身不存在于内存空间中。
4,对象是一个动态的概念。每一个对象都存在着有别于其它对象的属于自己的独特的属性和行为。对象的属性可以随着它自己的行为而发生改变。

什么是类,什么是对象,类和对象这间的关系
c是A的实例,也是对象。

类的概念:类是具有相同属性和服务的一组对象的集合。它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性说明和服务说明两个主要部分。

对象的概念:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。从更抽象的角度来说,对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组服务的封装体。客观世界是由对象和对象之间的联系组成的。

类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,而对一类对象的抽象就是类.类描述了一组有相同特性(属性)和相同行为(方法)的对象。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值