Junior — Middle
85
Можете объяснить, в чем заключается метод поверхностного копирования объектов?
AI-дан жауап
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 тоже "Санкт-Петербург", так как адрес общий
Таким образом, поверхностное копирование подходит, когда вложенные объекты не изменяются или когда разделение вложенных объектов не требуется.