public class Color {
String color;
Color(String color)
{
this.color=color;
}
}
public class ColoredCircle {
int x;
Color color;
ColoredCircle(int x, Color color)
{
this.x=x;
this.color=color;
}
public Object testClone()
{
Color c = new Color(this.color.color);
ColoredCircle cc1 = new ColoredCircle(this.x, c);
return cc1;
}
}
В упомянутом выше классе ColoredCircle у нас есть метод с именем testClone(), и он работает точно так же, как глубокое клонирование. Теперь я запутался в том, что нужно реализовать Cloneable для клонирования? И является ли вышеуказанная программа разновидностью глубокого клонирования?
Cloneable
для использования методаclone()
в соответствии с его контрактом? Да. Это необходимо для того, чтобы вообще клонировать (сделать копию) объекта? Нет. Конструктор копирования или что-то подобное гораздо предпочтительнее. 14.10.2015