Главная страница

ИГА. Понятие базы данных


Скачать 0.77 Mb.
НазваниеПонятие базы данных
Дата05.04.2022
Размер0.77 Mb.
Формат файлаdocx
Имя файлаИГА.docx
ТипДокументы
#445246
страница19 из 37
1   ...   15   16   17   18   19   20   21   22   ...   37

Понятия класса и объекта.


В отличие от структурного программирования, объектно-ориентированная программа должна быть разбита не на функции, а на объекты. Примеры объектов могут быть легко взяты из окружающего мира: автомобиль, самолет, стол и пр. На рис. 2 приведен пример объявления объекта. Важно отметить, что у объекта есть тип, в данном случае «Store». Тип объекта – это класс, понятие которого будет изучено далее. Используя строгую терминологию: объект – это экземпляр класса [12].

Объект является сущностью определенного типа. Даже если будут две сущности одного типа – они все равно буду изолированы друг от друга [1].

Над объектом доступен ряд операций:

  • Конструктор – служит для создания и инициализации объекта

  • Деструктор – служит для уничтожения объекта

  • Модификатор – служит для изменения состояния объекта

  • Селектор – служит для доступа без модификации к переменным объекта

  • Итератор – служит для доступа к содержанию объекта по частям в заданной последовательности

Важно отдельно выделить, что объект в объектно-ориентированном программировании обладает индивидуальностью, т.е. обладает свойствами, которые позволяют отличать его от других объектов [18]. Объекты могут быть в определенных отношениях, например иерархических, главные из которых: использование и включение. Отношение включения подразумевает, что составной объект содержит в себе другие объекты. Отношение использования более сложное и реализуется посредством посылки сообщений от одного объекта другому. При этом один из объектов может выступать в роли [1]:

  • Активного или воздействующего объекта, т.е. объект воздействует на другие объекты, но при этом ни один объект не воздействует на него

  • Пассивного или исполняющего объекта, когда он подвергается воздействию, но сам не воздействует на другие объекты

  • Посредника, когда объект подвергается воздействию и сам воздействует на других

Объект можно назвать главной единицей при объектно-ориентированном программировании [12]. В зависимости от языка программирования, объекты создаются самим программистом или могут реализовываться и самим языком программирования, который следует принципу, что все является объектом (например, Ruby) [17].

2.2. Класс

Класс является описываемой моделью объекта. Фактически он описывает устройство объекта и его поведение. Обычно классы разрабатываются таким образом, чтобы их объекты (экземпляры) соответствовали объектам предметной области.

Идея классов пришла из работ, имеющих отношение к исследованиям по искусственному интеллекту. Человек классифицирует любую вещь как частный случай некоторого более общего понятия. В примерах классов в учебных пособиях по объектно-ориентированному программированию часто упоминают яблоки и груши для примера: конкретное яблоко – это в целом некоторое яблоко, вообще яблоко, а любое вообще яблоко – фрукт [21].

Каждый класс имеет свои члены. В зависимости от языка программирования члены класса могут быть различных типов. Класс может содержать поля (свойства) и методы (функции). Класс в итоге определяется как список своих членов [10].

Таким образом, любой класс может пониматься как шаблон (или спецификация), по которому создаются объекты (экземпляры) этого класса.

Как в реальном мире физических объектов, так и в объектно-ориентированном программировании, классы имеют различные отношения между собой: ассоциация, наследование, агрегация и композиция [1].

Ассоциация – двусторонняя связь между объектами разных классов, т.е. это двухсторонняя ссылка, при каждом изменении которой изменяются атрибуты обоих объектов. Как пример можно привести двустороннюю связь между двумя объектами классов «Супруг» и «Супруга» [21]. Иначе говоря, при отношении «ассоциация», классы концептуально взаимодействуют друг с другом. На UML ассоциация классами изображается соединяющей линией, а над линией указывается кратность (multiplicity), отражающая количество связанных объектов или звездочка, если количество произвольно. На рис. 4 приведен пример ассоциации [20].



Наследование показывает, что производный класс разделяет атрибуты и операции, определенные в одном или нескольких базовых классах. При описывании классов, использующих данное отношение, часто употребляется определение «является» (наследник «является» объектом наследуемого класса). На рис. 5 приведен пример UML обозначения наследования [20].



Агрегация (композиция, включение) – один класс содержит в качестве составной части объекты другого класса. То есть агрегация является методикой создания нового класса из уже существующих путем включения (делегирования). Агрегирование часто описывается как отношение принадлежности по принципу «у самолета есть фюзеляж, шасси и винт». Важно отметить, что в случае нестрогой агрегации один из объектов может быть уничтожен, что недопустимо при строгой агрегации (композиции). На рис. 6 приведен пример UML обозначения нестрогой агрегации [20].



Композиция – это строгий вариант агрегирования, когда включаемый объект может существовать только как часть другого объекта. Если главный объект будет уничтожен, тогда уничтожается и включенный. На рис. 7 приведен пример UML обозначения композиции [20].

Зависимость (использование) – показывает, что один класс пользуется некоторыми услугами другого класса (значением полей, методами, сигнатурами). Важно отдельно отметить, что вызов методов другого класса тоже является отношением зависимости, т.к. один класс знает о втором, и знает как минимум один интерфейс. Пример UML обозначения данного отношения приведен на рис. 8. [20]
1   ...   15   16   17   18   19   20   21   22   ...   37


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