![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Sherst |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 131 Регистрация: 26.10.2005 Репутация: нет Всего: 2 |
Прочитал следующее:
клонирование объектов применяется в тех случаях, когда в процессе работы метода надо внести изменение в объект, не изменяя при этом внешний объект (исключается возможноть использования дублирующих ссылок).Для создания копии локального объекта используется метод clone().Это protected метод базового класса Object. Вопрос такой зачем переопределять данный метод в дочерних классах, ведь классы по умолчанию наследуют Object ? |
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 17 Всего: 43 |
А потому что метод класса Object не всегда срабатывает, т.е. он может создать обьект, но установить его значения, равными исходному (а это собственно и есть клонирование, пустой-то обьект легко создать конструктором) не всегда в состоянии. Вот и приходится руками делать. В простых же случаях работает.
Это сообщение отредактировал(а) COVD - 27.3.2006, 22:34 |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15719 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
1. protected метод может быть вызван либо наследниками либо из того же пакета. Но не любым классом. 2. для удобства программирования, лучше убрать CloneNotSupportedException 3. для осуществления глубокого клонирования (если требуется) Добавлено @ 22:40 Ну и конечно не забыть про implements Serializable. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Sherst |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 131 Регистрация: 26.10.2005 Репутация: нет Всего: 2 |
Можете привести пример поверхностного и глубокого клонирования ?
Заранее спасибо. |
|||
|
||||
| LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15719 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Поверхностоное:
Глубокое:
Что к чему хорошо расписано у Эккеля. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
| Sherst |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 131 Регистрация: 26.10.2005 Репутация: нет Всего: 2 |
Спасибо за пример.
to LSD обязательно добавляю плюсик, только немного выросту |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |