Назад к вопросам
Junior — Middle
59
Можете объяснить, в чем заключается метод поверхностного копирования объектов?
Ответ от нейросети
sobes.tech AI
Метод поверхностного копирования (shallow copy) создает новый объект, копируя значения полей исходного объекта. Однако, если поле является ссылкой на другой объект, копируется только ссылка, а не сам вложенный объект. Это значит, что исходный и скопированный объекты будут ссылаться на одни и те же вложенные объекты.
Пример в Java:
class Person implements Cloneable {
String name;
Address address; // вложенный объект
public Person(String name, Address address) {
this.name = name;
this.address = address;
}
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone(); // поверхностное копирование
}
}
class Address {
String city;
public Address(String city) {
this.city = city;
}
}
// Использование:
Person p1 = new Person("Иван", new Address("Москва"));
Person p2 = (Person) p1.clone();
p2.address.city = "Санкт-Петербург";
// Теперь p1.address.city тоже "Санкт-Петербург", так как адрес общий
Таким образом, поверхностное копирование подходит, когда вложенные объекты не изменяются или когда разделение вложенных объектов не требуется.