Я знаю, что это может быть уже задано, но мой вопрос - это что-то другое. Я искал и знаю, что java метод object.clone()
использует поверхностное копирование, что означает копирование ссылок, а не реальных объектов. Допустим, у меня есть собака Класс
Class Dog{
public Dog(String name, DogTail tail, DogEar ear){
this.name = name;
this.tail = tail;
this.ear = ear;
}
}
DogTail t = new DogTail();
DogEar ear = new DogEar();
Dog dog1 = new Dog("good", t,ear);
допустим, я хочу получить копию dog1.
Dog dognew = dog1.clone ();
Если этот метод clone()
использует поверхностное копирование, это означает копирование ссылок. Поэтому, если я изменю t-объект, созданный выше, или метод ear, он изменится в dognew-объекте или наоборот. Как это клонирование хорошо? Этот вопрос возник, потому что кто-то сказал, что создание большого огромного объекта хуже, чем клонирование, поскольку вы экономите производительность при использовании метода clone()
.