Лабораторная работа 1 2 лабораторная работа 2 31 лабораторная работа 3 44 лабораторная работа 4 74
Скачать 1.76 Mb.
|
5.16 Класс ObjectВ Java определен один специальный класс – Object. Все другие классы являются его подклассами, Object – это суперкласс всех других классов. Это означает, что ссылочная переменная типа Object может обращаться к объекту любого другого класса. Кроме того, т.к. массивы реализуются как классы, переменная типа Object может также обращаться к любому массиву. Object определяет методы (табл. 1), что означает, что они доступны в каждом объекте. Таблица 1. Методы Object
Методы getclass(), notify(), notifyAll() и wait() объявлены как final. Другие можно переопределять. Здесь отметим два метода: equals() и toString(). Метод equals() сравнивает содержимое двух объектов. Он возвращает true, если объекты эквивалентны, и false – в противном случае. Метод ToString() возвращает строку, содержащую описание объекта, на котором он вызывается. Кроме того, этот метод вызывается автоматически, когда объект выводится методом printin(). Много классов переопределяют данный метод, что позволяет им приспосабливать описание специально для типов объектов, которые они создают. Контрольные вопросы 1. Понятие наследования. Графический пример. 2. Перегрузка методов. Пример. 3. Определение перегруженного метода. 4. Вызов перегруженного конструктора. 5. Способы передачи аргументов. 6. Особенности статических и не статических вложенных классов. 7. Наследование классов. Пример. 8. Модификаторы доступа и их назначение. 9. Формы использования ключевого слова super. 10. Понятие многоуровневой иерархии. 11. Работа super конструктора в многоуровневой иерархии. 12. Порядок вызова конструкторов при многоуровневой иерархии. 13. Видимость методов при наследовании. 14. Формы использования ключевого слова final. 15. Методы высшего суперкласса. 16. Множественное наследование. Индивидуальные задания Общая часть заданий для вариантов 1-20: Написать программу, демонстрирующую работу с объектами двух типов: T1 и T2, для чего создать систему соответствующих классов. Каждый объект должен иметь идентификатор (в виде произвольной строки символов) и одно или несколько полей для хранения состояния объекта (один класс является потомком другого). Клиенту (функции main) должны быть доступны следующие основные операции (методы): создать объект, удалить объект, показать значение объекта и прочие дополнительные операции (зависят от варианта). Операции по созданию и удалению объектов инкапсулировать в классе Factory. Предусмотреть меню, позволяющее продемонстрировать заданные операции. При необходимости в разрабатываемые классы добавляются дополнительные методы (например, конструктор копирования, операция присваивания и т.п.) для обеспечения надлежащего функционирования этих классов. Варианты 1-10 В табл. 2.1 и 2.2 перечислены возможные типы объектов и возможные дополнительные операции над ними. В таблице рассматриваются только целые положительные числа. Таблица 2.1. Перечень типов объектов
Таблица 2.2. Перечень дополнительных операций (методов)
Примечание: Первые четыре операции могут применяться к объектам любых классов, за исключением класса SymbString. Здесь и далее Т — любой из типов Т1 или Т2. Таблица 2.3 содержит спецификации вариантов. Таблица 2.3. Спецификации вариантов 1-10
Варианты 11-20 В табл. 2.4 и 2.5 перечислены возможные типы объектов и возможные дополнительные операции над ними. Таблица 2.4. Перечень типов объектов
Таблица 2.5. Перечень дополнительных операций (методов)
Таблица 2.6 содержит спецификации вариантов. Таблица 2.6. Спецификации вариантов 11-20
Список литературы 1. Шилдт Г. Полный справочник по Java SE6, 2007. 2. Эккель Б. Философия Java, 2009. 3. Ноутон П., Шилдт Г. - Java 2. Наиболее полное руководство, 2007. 4. Павловская Т.А., Щупак Ю.А. C++. Объектно-ориентированное программирование, 2006. 5. Буч Г. Объектно-ориентированное проектирование с примерами применения М.: Конкорд, 1992. |