对象是如何创建的
行 Vehicle minivan = new Vehicle();声明一个 Vehicle 类型的对象。
该语句做了两件事:
声明一个名为 Vehicle 类的小型货车的变量。
创建对象的物理副本并使用 new 运算符为小型货车分配对其的引用。
new 运算符为对象动态分配内存并返回对该对象的引用。
引用或多或少是new分配的内存中对象的地址。
然后将引用存储在变量中。
在Java中,类中的所有对象都必须动态分配。
语句的两个步骤可以重写以单独显示每个步骤。
小型货车; // 声明对象的引用。
小型货车=新车辆(); // 分配一个 Vehicle 对象。
第一行将小型货车声明为对 Vehicle 类型的对象的引用。
minivan 是一个可以引用对象的变量,但不是对象。
目前,小型货车不引用对象。
下一行创建一个新的 Vehicle 对象,并为小型货车分配对其的引用。
现在,小型货车已链接到一个对象。
引用变量和赋值
对象引用变量在赋值操作中的行为与基本类型变量不同。
在原始类型变量中,左边的变量接收右边变量值的副本。
在对象引用变量中,左边的变量与右边的变量引用同一个对象。
这可能会导致意外结果。
例子:
车辆 car1 = new Vehicle();
车辆car2 = car1;
car1 和 car2 引用同一个对象。
通过 car1 或 car2 所做的更改会影响同一对象。
什么时候:
car1.mpg = 26;
System.out.println(car1.mpg);
System.out.println(car2.mpg);
会有26号出口。
car1 和 car2 引用同一对象,但不以其他方式链接。
后续对 car2 的赋值不会影响 car1。
例子:
车辆 car1 = new Vehicle();
车辆car2 = car1;
车辆 car3 = new Vehicle();
汽车2 = 汽车3;
car2 现在引用与 car3 相同的对象。
car1引用的对象保持不变。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3