Главная
>>
Каталог задач
>>
Разное
>>
Клонирование объектов
>>
Поверхностное клонирование
Aвтор:
неизвестный
Дата:
02.05.2007
Просмотров: 28661
реализации(java: 1шт...)
+добавить
Примеры поверхностного клонирования экземпляров объектов.
Напомним, что неглубокое, поверхностное клонирование представляет из себя копию объекта, в которой ссылки на другие объекты просто продублированы.
Сами же эти другие объекты, на которые они указывают - не клонируются.
Реализации:
java(1)
+добавить
1)
Поверхностное, неглубокое клонирование на java, code #196[автор:-]
/*
Software Architecture Design Patterns in Java
by Partha Kuchana
Auerbach Publications
*/
//Lower-level object
private Car car;
public Car getCar() {
return car;
}
return name;
}
public void setName
(String s
) { name = s;
}
name = s;
car = new Car(t);
}
//shallow copy
try {
return super.clone();
return null;
}
}
}
class Car {
return name;
}
public void setName
(String s
) { name = s;
}
name = s;
}
}
public class ShallowCopyTest {
public static void main
(String[] args
) { //Original Object
Person p = new Person("Person-A", "Civic");
System.
out.
println("Original (orginal values): " + p.
getName() +
" - " + p.getCar().getName());
//Clone as a shallow copy
Person q = (Person) p.clone();
System.
out.
println("Clone (before change): " + q.
getName() +
" - " + q.getCar().getName());
//change the primitive member
q.setName("Person-B");
//change the lower-level object
q.getCar().setName("Accord");
System.
out.
println("Clone (after change): " + q.
getName() +
" - " + q.getCar().getName());
System.
out.
println("Original (after clone is modified): " + p.
getName() + " - " + p.getCar().getName());
}
}