
Лекции Java / 03. Типы, их отношения и особенности разработки.pptx
.pdf
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
Лекция 3
Типы, их отношения и особенности разработки
© Составление, Гаврилов А.В., 2013
Самара
2013

План лекции
nТипы и основные принципы
nОтношения между классами
nОбъектно-ориентированный дизайн
nПринципы дизайна
Самарский государственный аэрокосмический университет имени академика С.П. Королёва |
2 |

И снова о главном
nИнкапсуляция – объединение данных и методов их обработки в одну сущность, приводящее к сокрытию реализации класса и отделению его внешнего представления от внутреннего
nЗапрос (сообщение) – единственный способ заставить объект выполнить операцию
nОперация – единственный способ изменить внутреннее состояние объекта
nОперация описывается своей сигнатурой:
•Имя операции
•Объекты-параметры
•Возвращаемое значение
Самарский государственный аэрокосмический университет имени академика С.П. Королёва |
3 |

Типы, классы и объекты
n Тип объекта
• Интерфейс – множество сигнатур операций объекта • Тип – имя конкретного интерфейса
n Класс
• Структура внутренних данных объекта • Реализация операций объекта
• Тип объекта
n Инстанцирование класса
•Результат – объект
•Реализация объекта определяется классом
Самарский государственный аэрокосмический университет имени академика С.П. Королёва |
4 |

Использование классов в программе
n Обращение к статическим элементам
•Класс имеет состояние?!!
•Класс имеет поведение?!!
•Уникальностью обладает однозначно…
n Создание объектов
• Класс имеет смысл реализации
• Объект имеет фактический (реальный) класс
n Объявление переменных
•Класс имеет смысл типа
•Через переменную можно запрашивать только операции, определённые её формальным типом
Самарский государственный аэрокосмический университет имени академика С.П. Королёва |
5 |

Типы ущербны с точки зрения семантики
nОперации, безусловно, оказываются формализованными
nНо название и типы параметров могут не раскрывать полного смысла операции
nИ даже правила именования и самодокументируемый код – не панацея
nПример:
•void setTemperature(double temperature)
•Какой допустимый диапазон значений?
•А в чём вообще температуру меряем?!!
Самарский государственный аэрокосмический университет имени академика С.П. Королёва |
6 |

Внешний контракт класса
nНабор элементов класса, доступных извне тем или иным способом, в совокупности с описанием их назначения и особенностей
nСпособ выражения обещаний автора относительно того, на что способен и для чего предназначен созданный им продукт
Самарский государственный аэрокосмический университет имени академика С.П. Королёва |
7 |

Наследование классов
nИспользование одним классом структуры и/или поведения другого класса
•Используемый класс называется базовым, родительским или суперклассом
•Использующий класс называется производным, дочерним, подклассом или потомком
nОтношение наследования между классами транзитивно, поэтому иногда имеет смысл говорить о непосредственном родительском или дочернем классе
nДочерний класс вправе:
•определять дополнительные элементы структуры и поведения
•изменять поведение, описанное в родительском классе
Самарский государственный аэрокосмический университет имени академика С.П. Королёва |
8 |

Два фундаментальных аспекта наследования
nНаследование типа
Врезультате производный класс получает тип базового
nНаследование реализации
Врезультате производный класс приобретает функциональные характеристики базового в виде структуры данных и реализации операций
Самарский государственный аэрокосмический университет имени академика С.П. Королёва |
9 |

Виды наследования
n Простое наследование
• •
• •
Один класс – один родитель
В целом отношение «родители-потомки» имеет структуру «один ко многим»
Строго древовидная иерархия классов Простота, оплаченная потерей гибкости
n Множественное наследование
•Один класс – несколько родителей
•В целом отношение «родители-потомки» имеет структуру «многие ко многим»
•Пересекающиеся деревья иерархий
•Высокая гибкость при создании классов
Самарский государственный аэрокосмический университет имени академика С.П. Королёва |
10 |