Junior — Middle
Obyektlarning sathiy nusxalash usuli nima ekanligini tushuntirib berishingiz mumkinmi?
sobes.tech AI
AIdan javob
Yuzaki nusxa ko'chirish usuli, asl obyektdagi maydon qiymatlarini nusxa qilib yangi obyekti yaratadi. Ammo, agar maydon boshqa obyektdagi havola bo'lsa, faqat havola nusxa olinadi, o'z ichiga olgan ob'ekt emas. Bu shuni anglatadiki, asl va nusxa olingan ob'ektlar bir xil ichki ob'ektlarga havola qiladilar.
Java misoli:
class Person implements Cloneable {
String name;
Address address; // ichki ob'ekt
public Person(String name, Address address) {
this.name = name;
this.address = address;
}
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone(); // yuzaki nusxa
}
}
class Address {
String city;
public Address(String city) {
this.city = city;
}
}
// Foydalanish:
Person p1 = new Person("Иван", new Address("Москва"));
Person p2 = (Person) p1.clone();
p2.address.city = "Санкт-Петербург";
// Endi p1.address.city ham "Санкт-Петербург" bo'lib, manzil umumiy
Shuning uchun, yuzaki nusxa olish, ichki ob'ektlar o'zgarmas yoki ichki ob'ektlarni ajratish shart emas bo'lsa, mos keladi.