Как создаются объекты
Строка Vehicle minivan = new Vehicle(); объявляет объект типа Транспортное средство.
Этот оператор выполняет две функции:
Объявляет переменную с именем минивэн класса Vehicle.
Создает физическую копию объекта и присваивает минивэну ссылку на него с помощью нового оператора.
Оператор new динамически выделяет память для объекта и возвращает ссылку на него.
Ссылка — это более или менее адрес объекта в памяти, выделенной new.
Затем ссылка сохраняется в переменной.
В Java все объекты в классе должны распределяться динамически.
Два шага оператора можно переписать, чтобы каждый шаг отображался отдельно.
Автомобиль минивэн; // объявляем ссылку на объект.
минивэн = новый автомобиль(); // выделяет объект Vehicle.
Первая строка объявляет минивэн как ссылку на объект типа Vehicle.
минивэн — это переменная, которая может ссылаться на объект, но не является объектом.
На данный момент минивэн не ссылается на объект.
Следующая строка создает новый объект Vehicle и присваивает минивэну ссылку на него.
Теперь минивэн привязан к объекту.
Ссылочные переменные и присвоение
Ссылочные переменные объекта действуют иначе, чем переменные примитивного типа в операциях присваивания.
В переменных примитивного типа переменная слева получает копию значения переменной справа.
В переменных ссылки на объект переменная слева ссылается на тот же объект, что и переменная справа.
Это может привести к неожиданным результатам.
Пример:
Транспортное средство car1 = новое Транспортное средство();
Транспортное средство car2 = car1;
car1 и car2 ссылаются на один и тот же объект.
Изменения, внесенные с помощью car1 или car2, влияют на один и тот же объект.
Когда:
car1.mpg = 26;
System.out.println(car1.mpg);
System.out.println(car2.mpg);
Будет выход 26.
car1 и car2 ссылаются на один и тот же объект, но не связаны другими способами.
Последующие присвоения машине2 не влияют на машину1.
Пример:
Транспортное средство car1 = новое Транспортное средство();
Транспортное средство car2 = car1;
Транспортное средство car3 = новое Транспортное средство();
машина2 = машина3;
car2 теперь ссылается на тот же объект, что и car3.
Объект, на который ссылается car1, остается неизменным.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3