Junior — Middle
Pouvez-vous expliquer en quoi consiste la méthode de copie superficielle des objets?
sobes.tech IA
Réponse de l'IA
La méthode de copie superficielle crée un nouvel objet en copiant les valeurs des champs de l'objet d'origine. Cependant, si un champ est une référence à un autre objet, seule la référence est copiée, pas l'objet imbriqué lui-même. Cela signifie que l'objet original et l'objet copié référenceront les mêmes objets imbriqués.
Exemple en Java :
class Person implements Cloneable {
String name;
Address address; // objet imbriqué
public Person(String name, Address address) {
this.name = name;
this.address = address;
}
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone(); // copie superficielle
}
}
class Address {
String city;
public Address(String city) {
this.city = city;
}
}
// Utilisation :
Person p1 = new Person("Иван", new Address("Москва"));
Person p2 = (Person) p1.clone();
p2.address.city = "Санкт-Петербург";
// Maintenant p1.address.city est aussi "Санкт-Петербург", car l'adresse est partagée
Ainsi, la copie superficielle convient lorsque les objets imbriqués ne changent pas ou lorsque la séparation des objets imbriqués n'est pas nécessaire.