类,对象和实例之间的区别

Pra*_*jut 78 java class object instance

Java中的类,对象和实例是什么?

Jes*_*per 84

是用来创建一个蓝图的对象.对象是类的实例 - 它是使用特定类创建的具体"事物".因此,'object'和'instance'是相同的,但'instance'一词表示一个对象与它的类的关系.

如果你看一个例子,这很容易理解.例如,假设您有一个班级House.你自己的房子是一个对象,是一个类的实例House.你姐姐的房子是另一个对象(另一个类的实例House).

// Class House describes what a house is
class House {
    // ...
}

// You can use class House to create objects (instances of class House)
House myHouse = new House();
House sistersHouse = new House();
Run Code Online (Sandbox Code Playgroud)

该课程House描述了房屋的概念,并且有特定的,具体的房屋,它们是对象和阶级的实例House.

注意:这在Java中与在所有面向对象编程语言中完全相同.


Ste*_*n C 78

Java(和任何其他编程语言)根据类型建模.在理论层面,是一些信息量的表示,而类型是一组值.当我们说值X Y类型的实例时,我们只是说X是Y类型的值集合的成员.

这就是术语"实例"的真正含义:它描述的是一种关系,而不是一种事物.

Java编程语言的类型系统支持两种类型,基本类型引用类型.引用类型进一步分为数组类型.Java 对象是引用类型的实例.

对象是类实例或数组.(JLS 4.3.1)

这是类型理论观点.

实际上,大多数Java开发人员将单词"instance"和"object"视为同义词.(那包括我,然后我试图快速解释一下.)并且大多数开发人员使用"值"而不是"实例"来引用基本类型的实例.

  • 我真的很感谢你的回答先生,我几乎得到了它,还有一个问题.我们说 - "每当编译器命中0参数构造函数时,它就会创建一个类的实例." 在这种情况下,真正创建的实例或对象是什么?我想一个对象,我们使用"实例"这个词作为同义词.但如果你更好地确认它,它会很好. (2认同)
  • @Ryan:基本上是的:它正在创建一个Object,它是有问题的Class的一个实例.(但请注意,引用的句子是"类的实例"而不仅仅是"实例"...所以作者实际上并没有在这里使用"实例"作为同义词.) (2认同)

mus*_*bar 29

类基本上是一个定义,并包含对象的代码.对象是类的实例

例如,如果你说

String word = new String();
Run Code Online (Sandbox Code Playgroud)

该类是String类,它描述了对象(实例)字.

声明类时,没有分配内存,因此类只是一个模板.

声明类的对象时,将分配内存.


use*_*183 11

我非常喜欢Jesper的解释

通过即兴创作Jesper答案中的例子,

class House {
// blue print for House Objects
}

class Car {
// blue print for Instances of Class Car 
}

House myHouse = new House();
Car myCar = new Car();
Run Code Online (Sandbox Code Playgroud)

myHouse和myCar是对象

myHouse是House的一个实例(将Object-myHouse与其Class-House相关联)myCar是Car的一个实例

简而言之

"的MyHouse是一个实例屋",这是等于说"的MyHouse是对象类型屋"


小智 6

类是数据类型,您可以使用此类型来创建对象.

  • 实例是逻辑但对象是物理意味着占用一些内存.

  • 我们可以为抽象类和接口创建一个实例,但是我们不能
    为它们创建一个对象.

  • 对象是类的实例,实例意味着代表类即对象.

  • 实例是指对象的引用.

  • 对象实际上指向该实例的内存地址.

  • 您无法在图层上传递实例,但可以在图层上传递对象

  • 您不能存储实例,但可以存储对象

  • 单个对象可以有多个实例.

  • 实例将具有类定义和对象定义,而在对象中它将只具有对象定义.

对象语法:

 Classname var=new Classname();
Run Code Online (Sandbox Code Playgroud)

但是例如创建它只返回一个引用对象的指针,语法是:

 Classname varname;
Run Code Online (Sandbox Code Playgroud)


小智 5

类别: 结构

对象:物理表现

实例:从类创建的每个对象

参考:对象地址