- •Наследование
- •Цели занятия
- •Понятие наследования
- •Понятие наследования
- •Понятие наследования
- •Расширенный класс. Конструкторы
- •Расширенный класс. Конструкторы
- •Расширенный класс. Конструкторы
- •Порядок выполнения
- •Порядок выполнения
- •Порядок выполнения
- •Порядок выполнения
- •Порядок выполнения
- •Наследование и переопределение
- •Наследование и переопределение
- •Наследование и переопределение
- •Наследование и переопределение
- •Сокрытие полей. Доступ к
- •Сокрытие полей. Доступ к
- •Сокрытие полей. Доступ к
- •Возможность доступа и
- •Сокрытие статических членов
- •Служебное слово super
- •Служебное слово super
- •Служебное слово super
- •Совместимость
- •Совместимость
- •Совместимость
- •Явное преобразование типов
- •Явное преобразование типов
- •Проверка типа
- •Проверка типа
- •Методы и классы final
- •Методы и классы final
- •Методы и классы final
- •Методы и классы final
- •Методы и классы final
- •Методы и классы abstract
- •Методы и классы abstract
- •Методы и классы abstract
- •Класс Object
- •Методы класса Object
- •Методы класса Object
- •Методы класса Object
- •Методы класса Object
- •hashCode() и equals()
- •Клонирование объектов
- •Клонирование объектов
- •Клонирование объектов
- •Литература
Клонирование объектов
51 Пример 5
public Object clone() { Object result = null; try {
result = super.clone();
} catch (CloneNotSupportedException ex) { } return result;
}
•Простого клонирования может быть недостаточно, в этом случае применяется
глубокое клонирование
•В процессе глубокого клонирования соответствующие методы clone вызываются для каждого объекта, обозначенного переменной-
полем, и каждого элемента массива объектов
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2013 |
Клонирование объектов
52• Процесс носит рекурсивный характер – клонированию подвергаются все объекты, служащие членами других
объектов, начиная от текущего
•Т.е. если объект содержит ссылки на агрегированные объекты, после процедуры простого клонирования необходимо создать и их копии тоже
•Пример 6
public Object clone() { Object result = null; try {
result = super.clone(); result.a = (...) a.clone();
...
} catch (CloneNotSupportedException ex) { } return result;
}
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2013 |
Литература
53• Арнольд Кен, Гослинг Джеймс, Холмс Дэвид. Язык программирования Java. 3-е изд.: Пер. с
англ. – М.: Издательский дом «Вильямс», 2001. –
624с.: ил. ISBN 5-8459-0215-0 (рус.).
•Хорстманн Кей С., Корнелл Гари. Java`2. Библиотека профессионала, том 1. Основы. 8-е издание.: Пер. с англ. – М.: ООО «И.Д. Вильямс», 2008. – 816 с.: ил. ISBN 978-5-8459-1378-4 (рус.).
•Гаврилов А.В., Дегтярёва О.А., Лёзин И.А., Лёзина И.В. Учебное пособие по языку Java. Часть 1. Самара: Издательство СНЦ РАН, 2010. –
176с. - ISBN 978-5-93424-508-6
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2013 |