Яп
.pdf2/27/2023
Интерфейс и реализация
321 |
322 |
Классы |
|
• Реализация класса описывает поведение класса. |
|
Она включает реализации всех операций, |
|
определенных в интерфейсе класса. |
|
• Атрибуты класса определяют состав и структуру |
|
данных, хранимых в объектах этого класса. |
|
Каждый атрибут имеет имя и тип, определяющий, |
|
какие данные он представляет. |
|
• Класс содержит объявления операций, |
|
представляющих собой определения запросов, |
|
которые должны выполнять объекты данного |
|
класса. |
|
• Реализация операции в виде процедуры – это |
|
метод, принадлежащий классу. |
324 |
323 |
81
Диаграмма классов
|
|
+ |
открытый |
видендля любого другого класса |
|
|
|
(public) |
|
|
|
|
|
|
|
|
- |
закрытый |
не виденвнешнимиклассами |
|
|
|
(private) |
(объектами) и может использоваться |
|
|
|
|
только объектом, его содержащим |
|
|
|
|
|
|
|
|
|
|
|
|
# |
защищенный |
виденвнутри самого класса,для |
|
|
|
(protected) |
потомков данного класса |
|
|
~ |
пакетный |
видендля клиента класса, |
• Атрибуты: |
|
(package) |
объявленногов том же пакете |
|
|
|
|
||
|
|
|
Видимость Имя : Тип [Множественность] = НачальноеЗначение {Свойства}
• Методы:
Видимость Имя (Список Параметров): ВозвращаемыйТип {Свойства}
• Параметрыметода:
Направление Имя : Тип = ЗначениеПоУмолчанию
•Если атрибут(операция)подчеркивается– его областью действияявляетсякласс,иначе– областьюдействия
являетсяэкземпляр. |
325 |
2/27/2023
Специальные виды классов
•Абстрактный класс – это класс, который не может иметь экземпляров. В них присутствуют функции члены, которые объявлены, но не определены. Эти функции определяются в наследниках, которые уточняют данную абстракцию.
•Интерфейс – это абстрактный класс, который содержиттолько объявление методов и статические константные поля.
•Класс-утилита – это класс, в котором присутствуют только статические члены. Используются для группировки наиболее часто используемых алгоритмов.
326
ОТНОШЕНИЯ МЕЖДУ КЛАССАМИ
327 |
328 |
82
329
Класс ассоциации
•Самаассоциациятоже может иметь свойства и можетбыть представлена в виде класса.
331
2/27/2023
Ассоциация
•Ассоциацияпоказываетструктурные отношениямежду объектами-экземплярамикласса,т.е. соединениямежду классами.
•Когдакласс участвуетв ассоциации,он играетвэтом отношенииопределеннуюроль.
•Мощность ассоциациибывает одногоиз трех типов:
1.один-к-одному;
2.один-ко-многим;
3.многие-ко-многим
330
N-арная ассоциация
•Ассоциацияможет объединять три и более класса. В этом случае она называется n-арной
332
83
Зависимость
•Зависимостьэто отношение,которое показывает,что изменение в одномклассе(независимом)можетвлиять на другойкласс (зависимый),которыйиспользуетего.
•С помощьюзависимостиуточняют,какая абстракция является клиентом,а какая — поставщикомопределенной услуги.
•Пунктирнаястрелказависимостинаправлена отклиентак поставщику.
333
Композиция
•Композиция– физическоевключение.
•Одинклассбез другогоне можетсуществовать.
335
2/27/2023
Агрегация
•Агрегацияобозначаетотношенияклассовв иерархии «целое/часть». Говорят,что агрегацияобразует«partof»- иерархию классов(и объектов).
•Агрегацияобеспечиваетвозможностьперемещения от целого(агрегата)к его частям(атрибутам).
•Нефизическоевключение – агрегация.
334
Реализация
•Реализацияэто отношениемежду классами,в котором класс-приемниквыполняетреализациюопераций интерфейса класса-источника.
•Класс Каталогдолженреализоватьинтерфейс Обработчик каталога,то есть Обработчиккаталогарассматриваетсякак источник,а Каталог— как приемник.
336
84
2/27/2023
Обобщение
•Обобщение— отношение между общей сущностью и специализированнойразновидностью этой сущности.
•Наследованиеэто отношение, при котором один класс разделяет структуру и поведение, определенные в одном другом (простое наследование) или во многих других (множественное наследование) классах.
337 |
338 |
Объекты
• Объект – это экземпляр некоторого класса.
• При реализации объекта для атрибутов будет выделена память, необходимая для хранения всех атрибутов
• Каждый атрибут будет иметь конкретное значение в любой момент времени работы программы.
• Объектов одного класса в программе может быть сколь угодно много, все они имеют одинаковый набор атрибутов, описанный в классе, но значения атрибутов у каждого объекта свои и могут изменяться в ходе выполнения программы.
340
85
2/27/2023
341
Объекты на UML диаграмме
•Имя объекта подчеркиваетсяи указывается всегда, атрибуты указываются выборочно.
•И имя объекта, и имена атрибутов записываются с маленькой буквы.
•Синтаксис представления имени имеет вид:
имяОбъекта:ИмяКласса
• Синтаксис представления атрибута имеет вид:
имя : Тип = Значение
343
342
Свойства объектов
•индивидуальность – это характеристика объекта, которая отличает его от всех других объектов.
•состояние – характеризуется перечнем всех атрибутов объекта и текущими значениями каждого из этих атрибутов.
•поведение – это его деятельность с точки зрения воздействия на другие объекты или подверженности воздействиям со стороны других объектов.
344
86
2/27/2023
Свойства объектов
ОТНОШЕНИЯ МЕЖДУ ОБЪЕКТАМИ
347
Операции клиента над объектом
•модификатор - изменяетсостояние объекта;
•селектор - дает доступ к состоянию, но не изменяет его;
•итератор - доступ к содержанию объекта по частям, в строго определенномпорядке;
•конструктор - операция создания объекта и/или его инициализации;
•деструктор - операция, освобождающая состояние объекта и/или разрушающая сам объект.
отношения между объектами
•Как участник связи объект может играть одну из трех ролей:
1. контроллер - объект, который может воздействоватьна другие объекты, но никогда не подвержен воздействию других объектов;
2. сервер - объект, который никогда не воздействует на другие объекты, он только используется другими объектами;
3. агент - объект, который может как воздействоватьна другие объекты, так и использоваться ими. Агент создается для выполнения работы от имени контроллера или
другого агента.
348
87
2/27/2023
отношения между объектами
Основные принципы ООП
349 |
350 |
Абстрагирование
•Абстрагирование – это способ выделить набор существенных характеристик объекта, исключая из рассмотрения незначимые, которые позволяют отличить его от всех других видов объектов (определить его концептуальные границы).
•Абстракция – это набор всех таких характеристик.
•Абстрагирование – это способ сконцентрироваться на интерфейсе (внешнее поведение объекта), не обращая внимания на реализацию (механизмы достижения желаемого поведения объекта).
351 |
352 |
88
2/27/2023
Абстрагирование
• Абстракции, начиная от наиболее полезных к менее полезным:
• Абстракция сущности – объект представляет собой полезную модель некой сущности предметнойобласти.
• Абстракция поведения – объект состоит из обобщенного множества операций.
• Абстракция виртуальной машины – объект группирует операции, которые либо вместе используются более высоким уровнем абстракции, либо сами используют некоторый наборопераций более низкого уровня.
• Произвольная абстракция – объект включает в себянабор операций, не имеющих друг с другом ничего общего.
353 |
354 |
Инкапсуляция |
|
• Инкапсуляция – это свойство системы, |
|
позволяющее объединить данные и методы, |
|
работающие с ними, в классе и скрыть детали |
|
реализации от пользователя. |
|
• Инкапсуляция выполняется посредством |
|
сокрытия данных. |
|
• Абстракция и инкапсуляция дополняют друг |
|
друга. |
|
• Абстрагирование направлено на наблюдаемое |
|
поведение объекта, а инкапсуляция занимается |
|
внутреннимустройством. На практике это |
|
означаетналичие у класса интерфейса и |
|
реализации. |
356 |
355 |
89
Наследование
•Наследование– это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью.
•Класс, от которого производится наследование,
называетсябазовым или родительским. Новый класс – потомком, наследником или производным классом.
•С помощью наследованияможно определить новые классы как расширение, специализацию или комбинацию ранее определенных классов.
359
2/27/2023
Инкапсуляция
|
+ |
открытый (public) |
видендлялюбого другого класса |
|
|
|
|
|
|
|
- |
закрытый (private) |
не виденвнешнимклассам(объектам) и может |
|
|
|
|
|
использоваться только объектом, его содержащим |
|
|
|
|
|
|
# |
защищенный(protected) |
виденвнутри самого классаи для потомков данного класса |
|
|
|
|
|
|
|
~ |
пакетный (package) |
видендля клиентакласса,объявленногов том же пакете |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Наследование
360
90