Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции Java / 03. Типы, их отношения и особенности разработки.pptx

.pdf
Скачиваний:
131
Добавлен:
16.03.2015
Размер:
168.74 Кб
Скачать

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

Лекция 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