Sobes.tech
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 ҳам "Санкт-Петербург" аст, зеро сурогат умумӣ аст

Аз ин рӯ, нусхаи рӯи рӯй мувофиқ аст, вақте ки объектҳои дарунӣ тағйир намеёбанд ё вақте ки ҷудо кардани объектҳои дарунӣ зарур нест.