对象(object)和实例(instance)有区别吗

小编 1591

对象(object)和实例(instance)基本上是没有区别的,它们之间常常可以互换使用。但从严格意义上来讲,对象代表了类的一个特定的实例,具有身份(identity)和属性值(attribute values)两个特征,所有的对象都是实例,但除了类的实例外的实例都不是对象。

1.对象(object)和实例(instance)的联系

对象和实例的意思在通常意义上没什么差别,一般都是指类的具体化。实例和对象基本上是同义词,它们常常可以互换使用,但两者也不是完全相等关系。实际上,对象代表了类的一个特定的实例,它具有身份(identity)和属性值(attribute values)两个特征。更深层次的理解就是:实例是对象的具体表示,操作可以作用于实例,实例可以有状态地存储操作结果。

2.对象(object)和实例(instance)的区别

从概念上理解,实例被用来模拟现实世界中存在的、具体的或原型的东西;而对象就是类的实例。也就是说,对象是绝对的对象,实例是相对的实例。因此,严格意义来讲,对象和实例还是存在区别的。

简单理解两者之间的区别,即:所有的对象都是实例,但并不是所有的实例都是对象。例如,一个关联(UML关系中的一种)的实例不是一个对象,它只是一个实例、一个连接。我们常见的实例都是类的实例,此时二者没有区别,但除了类的实例外的实例都不是对象。

延伸阅读

类的实例化是什么意思

类的实例化就是用类的定义来创建一个实例。类是对现实生活中一类具有共同属性和行为的事物的抽象;而对象是能够看得到摸的着的真实存在的实体。简单理解,可以把我们生活中的一些模具当作类,那么根据模具制作出来的具体的事物就是对象,模具定义了这类对象的属性和行为,创建对象的过程就叫做类的实例化。

类的实例化过程,首先进行类信息的加载初始化,包括静态变量和静态初始化块的初始化(静态变量、静态初始化块:决于它们在类中出现的先后顺序);然后加载main方法,进行对象的变量及初始化块的默认初始化(变量、初始化块:决于它们在类中出现的先后顺序;最后进行构造器的初始化。

回复

我来回复
  • 暂无回复内容

注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部