Bootstrap

创建一个对象用什么运算符?对象实体与对象引用有何不同?

在大多数编程语言中,特别是像Java、C#这样的面向对象编程语言中,创建对象通常使用new关键字。这个关键字用于实例化一个类的实例,即创建一个对象。例如,在Java中,如果你有一个名为Person的类,你可以这样创建一个Person对象:


	Person person = new Person();

这里,new Person()部分调用了Person类的构造函数来创建Person类的一个新实例,而Person person声明了一个Person类型的变量(即对象引用)来引用这个新创建的对象。

对象实体与对象引用的不同

  • 对象实体(Object Instance):对象实体是实际存储数据的区域,它根据类的定义来分配内存,并包含类的所有字段(属性)的实际值。对象实体是存储在堆内存中的。

  • 对象引用(Object Reference):对象引用是一个变量,它存储了对象实体在内存中的地址(或引用)。通过这个引用,程序可以访问和操作对象实体的数据和方法。在Java中,所有非基本数据类型(比如类、接口等)的变量都是对象引用。对象引用通常存储在栈内存中,而它们所指向的对象实体则存储在堆内存中。

简单来说,对象引用是访问对象实体的“门把手”或“指针”。你可以有多个对象引用指向同一个对象实体,但每个对象实体在内存中只有一个实例。

示例

Person person1 = new Person(); // 创建一个Person对象,person1是对这个对象的引用 
Person person2 = person1; // person2现在也是指向同一个Person对象的引用 


person1.setName("Alice"); // 通过person1引用修改对象的数据 
System.out.println(person2.getName()); // 通过person2引用访问修改后的数据,输出"Alice"

在这个例子中,person1person2都是指向同一个Person对象实体的引用。通过任何一个引用修改对象的状态,都会影响到通过另一个引用看到的对象状态。

;