Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пособие по Базам данных.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
1.3 Mб
Скачать

1.4.4.3. Классы

В ОО-системах объекты классифицируются в соответствии с их схожестью и различием. Объекты, имеющие общие свойства, группируются в классы. Т.е. класс представляет собой набор подобных объектов с разделяемыми структурой (атрибутами) и поведением (методами).

Класс содержит подробное описание структуры данных и реализации методов для объектов данного класса. Поэтому все объекты в классе используют одинаковую структуру и отвечают на одинаковые сообщения. Кроме того, класс действует на буфер памяти для схожих объектов. Каждый объект в классе представляет собой экземпляр класса (class instance) или экземпляр объекта (object instance).

Рис.15. Пример класса

Определим класс с именем STUDENT для хранения объектов-студентов. Все объекты класса STUDENT используют одинаковую структуру (атрибуты) и отвечают на одинаковые сообщения (с помощью методов). Каждый экземпляр класса представляет собой объект с уникальным OID и каждый объект ‘знает’, какому классу он принадлежит.

Рис.16. Представление класса STUDENT

1.4.4.4. Протокол

Набор сообщений класса, каждое с определенным именем, составляет протокол класса или объекта. Протокол представляет внешнюю (public) сторону объекта, т.е. он известен другим объектам, а также конечным пользователям. И наоборот, реализация структуры объекта и методов представляют внутренний (private) аспект объекта.

Рис.17. Внешняя и внутренняя стороны объекта

Обычно сообщение посылается экземпляру объекта, но можно также послать сообщение классу, а не объекту. Когда получателем сообщения является класс, сообщение будет инициировать метод класса. Примером метода класса является метод New. Метод класса New создает новый экземпляр объекта (с уникальным OID) в классе-получателе. Поскольку объект еще не существует, сообщение New адресуется классу, а не объекту.

Концепции объектно-ориентированного подхода представлены на рис. 18.

Рис. 18. Объектно-ориентированный подход: свойства объекта

1.4.4.5. Суперклассы, подклассы, наследование

Классы организуются в иерархию классов. Иерархия классов напоминает перевернутое кроной вниз дерево, в котором у каждого класса есть только один родительский класс. В случае, если классы имеют несколько родительских классов, иерархию классов называют сеткой классов (class lattice). Класс служит для распределения по группам объектов, имеющим одинаковые свойства. На рис.19 представлена иерархия классов музыкальных инструментов.

Рис.19. Иерархия классов музыкальных инструментов

Иерархия классов обеспечивает мощную концепцию ОО-подхода, которая называется наследованием. Наследование (inheritance) – это возможность объекта внутри иерархии наследовать структуру данных и поведение (методы) классов, находящихся выше него. Именно наследованием в ОО-системах обеспечивается многократное использование кода.

В ОО-системах все объекты производятся от суперкласса Object или класса Root. Поэтому все классы совместно используют свойства и методы суперкласса Object. Наследование данных и методов происходит сверху вниз по иерархии классов. Существуют два варианта наследования: единичное (single) и множественное (multiple).