Junior — Middle
Pode explicar em que consiste o método de cópia superficial de objetos?
sobes.tech IA
Resposta da IA
O método de cópia superficial cria um novo objeto copiando os valores dos campos do objeto original. No entanto, se um campo for uma referência a outro objeto, apenas a referência é copiada, não o objeto aninhado em si. Isso significa que o objeto original e o copiado irão referenciar os mesmos objetos aninhados.
Exemplo em Java:
class Person implements Cloneable {
String name;
Address address; // objeto aninhado
public Person(String name, Address address) {
this.name = name;
this.address = address;
}
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone(); // cópia superficial
}
}
class Address {
String city;
public Address(String city) {
this.city = city;
}
}
// Uso:
Person p1 = new Person("Иван", new Address("Москва"));
Person p2 = (Person) p1.clone();
p2.address.city = "Санкт-Петербург";
// Agora p1.address.city também é "Санкт-Петербург", pois o endereço é compartilhado
Portanto, a cópia superficial é adequada quando os objetos aninhados não mudam ou quando não é necessário separar os objetos aninhados.