Главная страница
Навигация по странице:

  • Контрольные вопросы

  • Индивидуальные задания

  • Список литературы

  • Лабораторная работа 1 2 лабораторная работа 2 31 лабораторная работа 3 44 лабораторная работа 4 74


    Скачать 1.76 Mb.
    НазваниеЛабораторная работа 1 2 лабораторная работа 2 31 лабораторная работа 3 44 лабораторная работа 4 74
    Дата12.03.2021
    Размер1.76 Mb.
    Формат файлаdoc
    Имя файлаOOP_Lab_Rus.doc
    ТипЛабораторная работа
    #184105
    страница23 из 31
    1   ...   19   20   21   22   23   24   25   26   ...   31

    5.16 Класс Object


    В Java определен один специальный класс – Object. Все другие классы являются его подклассами, Object – это суперкласс всех других классов. Это означает, что ссылочная переменная типа Object может обращаться к объекту любого другого класса. Кроме того, т.к. массивы реализуются как классы, переменная типа Object может также обращаться к любому массиву.

    Object определяет методы (табл. 1), что означает, что они доступны в каждом объекте.
    Таблица 1. Методы Object

    Метод

    Цель

    Object clone()

    Создает новый объект, который является таким же, как имитируемый объект

    boolean equals

    (Object object)

    Определяет, является ли один объект равным другому

    void finalize()

    Вызывается прежде, чем неиспользованный объект будет переработан (сборщиком мусора)

    Claas getclass()

    Получает класс объекта во время выполнения

    int hashCode()

    Возвращает хэш-код, связанный с вызовом объекта

    void notify()

    Возобновляет выполнение потока, ожидающего на объекте вызова

    void notifyAU()

    Возобновляет выполнение всех потоков, ожидающих на объекте вызова

    String tostring()

    Возвращает строку, которая описывает объект

    void wait ()

    void wait (long

    millisrconds)

    void wait (long millisrconds, int

    nanoseconds)

    Ждет выполнения на другом потоке


    Методы 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. Перечень типов объектов

    Класс

    Объект

    SymbString

    Символьная строка (произвольная строка символов)

    BinString

    Двоичцая строка (изображение двоичного числа)

    OctString

    Восьмеричная строка (изображение восьмеричного числа)

    DecString

    Десятичная строка (изображение десятичного числа)

    HexString

    Шестнадцатеричная строка (изображение шестнадцатеричного числа)


    Таблица 2.2. Перечень дополнительных операций (методов)

    Операция (метод)

    Описание

    ShowBin()

    Показать изображение двоичного значения объекта

    ShowOct()

    Показать изображение восьмеричного значения объекта

    ShowDec()

    Показать изображение десятичного значения объекта

    ShowHex()

    Показать изображение шестнадцатеричного значения объекта

    Add(Т s)

    Для объектов SymbString – конкатенация строк; для объектов прочих классов – сложение соответствующих численных значений с последующим преобразованием к типу Т

    Sub(T s)

    Для объектов SymbString – если s содержится как подстрока в строке класса, то результатом является строка, полученная удалением подстроки s; в противном случае возвращается значение s;

    для объектов прочих классов – вычитание соответствующих численных значений с последующим преобразованием к типу Т


    Примечание: Первые четыре операции могут применяться к объектам любых классов, за исключением класса SymbString.

    Здесь и далее Т — любой из типов Т1 или Т2.

    Таблица 2.3 содержит спецификации вариантов.

    Таблица 2.3. Спецификации вариантов 1-10

    Вариант

    Т1

    Т2

    Операции (методы)

    1

    SymbString

    BinString

    ShowOct(), ShowDec(), ShowHex()

    2

    SymbString

    BinString

    Add(T)

    3

    SymbString

    BinString

    Sub(T)

    4

    SymbString

    OctString

    Add(T)

    5

    SymbString

    OctString

    Sub(T)

    6

    SymbString

    DecString

    ShowBin(), ShowOct(), ShowHexO

    7

    SymbString

    DecString

    Add (T)

    8

    SymbString

    DecString

    Sub(T)

    9

    SymbString

    HexString

    Add (T)

    10

    SymbString

    HexString

    Sub(T)


    Варианты 11-20

    В табл. 2.4 и 2.5 перечислены возможные типы объектов и возможные дополнительные операции над ними.

    Таблица 2.4. Перечень типов объектов

    Класс

    Объект

    Triangle

    Треугольник

    Quadrate

    Квадрат

    Rectangle

    Прямоугольник

    Tetragon

    Четырехугольник

    Pentagon

    Пятиугольник


    Таблица 2.5. Перечень дополнительных операций (методов)

    Операция (метод)

    Описание

    Move()

    Переместить объект на плоскости

    Compare(T ob)

    Сравнить объект ob со значением класса по площади

    IsIntersect(T ob)

    Определить факт пересечения объекта ob с фигуной класса (есть пересечение или нет)

    IsInclucle(T ob)

    Определить факт включения объекта ob в объект класса


    Таблица 2.6 содержит спецификации вариантов.

    Таблица 2.6. Спецификации вариантов 11-20

    Вариант

    T1

    T2

    Операции (методы)

    11

    Triangle

    Quadrate

    Move().Compare(T)

    12

    Quadrate

    Pentagon

    Move().IsIntersect(T)

    13

    Triangle

    Rectangle

    Move().Compare(T)

    14

    Triangle

    Rectangle

    Move().IsIntersect(T)

    15

    Rectangle

    Pentagon

    Move().IsInclude(T)

    16

    Triangle

    Tetragon

    Move().Compare(T)

    17

    Triangle

    Tetragon

    Move().IsIntersect(T)

    18

    Triangle

    Tetragon

    Move().IsInclude(T)

    19

    Triangle

    Pentagon

    Move().Compare(T)

    20

    Triangle

    Pentagon

    Move().IsIntersect(T)



    Список литературы

    1. Шилдт Г. Полный справочник по Java SE6, 2007.

    2. Эккель Б. Философия Java, 2009.

    3. Ноутон П., Шилдт Г. - Java 2. Наиболее полное руководство, 2007.

    4. Павловская Т.А., Щупак Ю.А. C++. Объектно-ориентированное программирование, 2006.

    5. Буч Г. Объектно-ориентированное проектирование с примерами применения М.: Конкорд, 1992.
    1   ...   19   20   21   22   23   24   25   26   ...   31


    написать администратору сайта