Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры по_JAVA.docx
Скачиваний:
98
Добавлен:
21.01.2015
Размер:
414.87 Кб
Скачать

20. Основные принципы ооп. Полиморфизм. Модификаторы доступа.

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

21. Понятие объекта и работа с ним.

Под обьектом будем понимать понятие, абстракцию или любой предмет с четко очерченными границами, имеющий смысл в аспекте рассматриваемой проблемы. Введение объектов имеет следующие цели:

1) добиться большего понимания задачи;

2) введение основы для реализации на ЭВМ.

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

22.Типы отношений между классами. Агрегация, ассоциация.

Как правило, любая программа, написанная на объектно-ориентированном языке, представляет собой некоторый набор связанных между собой классов.

Возможны следующие связи между классами в рамках

объектной модели (приводятся лишь наиболее простые и часто исполь-

зуемые виды связей, подробное их рассмотрение выходит за рамки этой

ознакомительной лекции):

1. агрегация (Aggregation);

2. ассоциация (Association);

3. наследование (Inheritance);

4. метаклассы (Metaclass).

1) Агрегация: отношение между классами типа "содержит" (contain) или "состоит из" называется агрегацией, или включением. Например, если аквариум наполнен водой и в нем плавают рыбки, то можно сказать, что аквариум агрегирует в себе воду и рыбок.

Такое отношение включения, или агрегации (aggregation),

изображается линией с ромбиком на стороне того класса, который вы-

ступает в качестве владельца, или контейнера.

2) Ассоциация: если объекты одного класса ссылаются на один или более объектов другого класса, но ни в ту, ни в другую сторону отношение между объектами не носит характера "владения", или контейнеризации, такое отношение называют ассоциацией (association). Отношение ассоциации изображается так же, как и отношение агрегации, но линия, связываю-

щая классы,- простая, без ромбика. В качестве примера можно рассмотреть программиста и его

компьютер. Между этими двумя объектами нет агрегации, но существует четкая взаимосвязь. Так, всегда можно установить, за какими компьютерами работает какой-либо программист, а также какие люди пользуются отдельно взятым компьютером. В рассмотренном примере

имеет место ассоциация "многие-ко-многим".

23. Достоинства и недостатки ооп.

Достоинства ООП:

1. Классы позволяют проводить конструирование из полезных компонентов, обладающих простыми инструментами, что позволяет абстрагироваться от деталей реализации.

2. Локализация кода и данных улучшает наглядность и удобство сопровождения программного обеспечения.

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

4. ООП дает возможность создавать расширяемые системы. Это одно из основных достоинств ООП, и именно оно отличает данный подход от традиционных методов программирования. Расширяемость означает, что существующую систему можно заставить работать с новыми компонентами, причем без внесения в нее каких-либо изменений. Компоненты могут быть добавлены на этапе исполнения программы.

5. Обработка разнородных структур данных.

6. Изменение поведения во время исполнения

7. Реализация работы с наследниками. Алгоритмы можно обобщить настолько, что они уже смогут работать более чем с одним видом объектов.

8. Создание "каркаса" (framework). Независимые от приложения части предметной области могут быть реализованы в виде набора универсальных классов, или каркаса (framework), и в дальнейшем расширены за счет добавления частей, специфичных для конкретного приложения.

Недостатки ООП.

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

2. Многоразовое использование требует от программиста познакомиться с большими библиотеками классов.

3. Проектирование классов — задача куда более сложная, чем их использование. Проектирование класса, как и проектирование языка, требует большого опыта.

4. Очень трудно изучать классы.

Соседние файлы в предмете Программирование на Java