Junior — Middle
Կարող եք բացատրել, թե ինչ է մակերեսային պատճենման մեթոդը:
sobes.tech AI
Պատասխան AI-ից
Եռանկյունու մակերեսային պատճենման մեթոդը ստեղծում է նոր օբյեկտ՝ պատճենելով սկզբնական օբյեկտի դաշտերի արժեքները։ Սակայն, եթե դաշտը հղում է այլ օբյեկտի, պատճենվում է միայն հղումը, ոչ թե ներսի օբյեկտը։ Սա նշանակում է, որ սկզբնական և պատճենված օբյեկտները հղում կկատարեն նույն ներսի օբյեկտներին:
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 նույնպես "Санкт-Петербург" է, քանի որ հասցեն ընդհանուր է
Այսպիսով, մակերեսային պատճենումը հարմար է, երբ ներսի օբյեկտները չեն փոխվում կամ երբ անհրաժեշտ չէ նրանց բաժանումը։