Классы. Общая характеристика. Защищённые классы. Виды отношений между классами. Ассоциации классов

Раздел 1. Теоретические основы объектно-ориентированного программирования

Тема 1.2 Объекты, сообщения, классы.

План:

1. Объект, его свойства. Способы описания. Инкапсуляция. Полиморфизм. Наследование. Инициализация и разрушение объекта.

2. Классы. Общая характеристика. Защищённые классы. Виды отношений между классами. Ассоциации классов.

3. Событие. Структура программы, управляемой событиями. Сообщение. Цикл обработки сообщений.

Объект, его свойства. Способы описания. Инкапсуляция. Полиморфизм. Наследование. Инициализация и разрушение объекта.

Центральным элементом абстракции объектно-ориентированной методологии является объект.

Объект: Программные объекты моделируют объекты реального или воображаемого мира. Как модель, программный объект представляет собой некоторую абстракцию объекта реального, что предполагает выделение существенных свойств последнего и игнорирование тех, что безразличны с насущной, “сиюминутной”, точки зрения.

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

Состояние объекта: Объект, прежде всего, характеризуется своим состоянием. Состояние программного объекта полностью определяется некоторым набором характеристик и их текущими значениями. Эти характеристики называют полями. Но не все моменты состояния объекта должны быть непосредственно видимы извне. На самом деле состояние может быть вообще скрыто от внешнего взгляда. Оно инкапсулировано в объекте.

Поведение объекта: Поведение — это то, как объект взаимодействует с окружением (другими объектами). Объект может подвергаться воздействию окружения или сам воздействовать на него. Объект может рассматриваться как аналог предмета, а поведение — как реакция на манипуляции с ним или действия, инициированные самим объектом. Для каждого объекта существует определенный набор возможных действий над ним.

Действия в отношении к объектам иногда называют передачей сообщений между ними. В языках, подобных Object Pascal, операции над объектами называют обычно методами.

Отношения между объектами:

Можно выделить два типа отношений: связь и агрегацию.

Связь является разновидностью следующего взаимодействий — один объект может воздействовать на другой, являющийся автономной сущностью. Тут существует отношение подчинения — “А использует В”. Один объект является активным, другой — пассивным. В системе один и тот же объект может выступать как в активной, так и в пассивной роли по отношению к различным объектам.

Другой тип отношений — агрегация, когда один объект является составной частью, т. е. элементом другого — “А содержит В”. Агрегация может означать физическое вхождение одного объекта в другой.

Классы. Общая характеристика. Защищённые классы. Виды отношений между классами. Ассоциации классов.

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

Поля данных:Параметры объекта, задающие его состояние. Физически поля представляют собой значения (переменные, константы), объявленные как принадлежащие классу.

Методы:Процедуры и функции, связанные с классом. Они определяют действия, которые можно выполнять над объектом такого типа, и которые сам объект может выполнять.

Другими словами, структура характеристик объекта и все потенциальные отношения между объектами заложены в классе. Однако классы могут находиться еще и в специфических отношениях между собой:

  • Наследование:

Фундаментальное отношение между классами — это наследование. Один класс может наследовать другому. Говорят, что один класс является базовым, а другой (который наследует первому) — производным. Еще их называют соответственно классом-предком и классом-потомком. Наследование может быть прямым, когда один класс является непосредственным предком (потомком) другого, или косвенным, когда имеют место промежуточные наследования.

Производный класс наследует всю структуру характеристик и поведение базового, однако может дополнять или модифицировать их. Если класс В является производным по отношению к А, то с логической точки зрения “В есть А”. Например, понятие, или класс, “автомобиль” (В) является производным по отношению к понятию “средство передвижения” (А).

Наследование может быть простым, когда производный класс имеет всего одного непосредственного предка, и сложным, если в наследовании участвуют несколько базовых классов.

  • Полиморфизм:

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

  • Абстракция и инкапсуляция:

Чтобы абстрагировать объект, он должен быть сравнительно “слабо связан” с окружающим миром. Он должен обладать сравнительно небольшим набором существенных свойств, характеризующих его отношения с другими объектами. С другой стороны, выделение класса как некоторого понятия, охватывающего целый ряд различных объектов, также является моментом абстракции.

Поэтому абстрагирование, как таковое, имеет два аспекта: выделение общих и в тоже время существенных свойств, описывающих поведение ряда схожих предметов.

С абстракцией неразрывно связан принцип инкапсуляции. Инкапсуляция — это сокрытие второстепенных деталей объекта. Для этого нужно выделить сначала существенные его свойства. Но чтобы выделить существенные свойства, нужно сначала отвлечься от второстепенных.

Инкапсуляция — это принцип, согласно которому любой класс должен рассматриваться как чёрный ящик — пользователь класса должен видеть и использовать только интерфейсную часть класса и не вникать в его внутреннюю реализацию.

3. Событие. Структура программы, управляемой событиями. Сообщение. Цикл обработки сообщений.

Delphi-приложения, выполняемые в среде Windows, как и любое Windows-приложение, получает сообщение о возникающих для него событиях: нажатие клавиши, передвижение мыши и т.п. Управление приложением фактически сводится к обработке получаемых сообщений. Методы, в которых содержится код обработки события, называется обработчиком событий.

Среда Delphi поддерживает в качестве языка программирования приложений объектно-ориентированный язык программирования Object Pascal. Программы среды Delphi обычно разбиваются на ряд модулей (units). Каждый модуль сохраняется в отдельном pas-файле.

При построении приложения происходит линкование всех файлов модулей проекта.

Главный файл проекта (главный модуль) хранится в dpr-файле.

Классы. Общая характеристика. Защищённые классы. Виды отношений между классами. Ассоциации классов - student2.ru Классы. Общая характеристика. Защищённые классы. Виды отношений между классами. Ассоциации классов - student2.ru

Классы. Общая характеристика. Защищённые классы. Виды отношений между классами. Ассоциации классов - student2.ru

Классы. Общая характеристика. Защищённые классы. Виды отношений между классами. Ассоциации классов - student2.ru

ВОПРОСЫ ДЛЯ ОБСУЖДЕНИЯ:

1.Что такое объект и какими свойствами он обладает?

2.Какие отношения между объектами вы знаете?

3.Что такое класс?

4.Какие отношения между классами вы знаете?

5.Что такое событие и обработчик события?

6.Опишите структуру программы, управляемой событиями.

Наши рекомендации