Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЯВУ.docx
Скачиваний:
2
Добавлен:
23.04.2019
Размер:
210.36 Кб
Скачать
  1. Принцип инкапсуляции в ооп. Принцип наследования в ооп.

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

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

  • Увеличивается легкость распространения и повторного использования программного кода.

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

  • Наследование представляет собой специализацию. Подкласс рассматривается как особый случай родительского класса.

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

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

  1. Понятие полиморфизма в ооп. Языки ооп. Объектно-ориентированный анализ и проектирование.

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

1.Можно установить родительский объект равным дочернему, но не наоборот.

2.Полиморфные методы должны быть объявлены в родительском объекте.

3.Все полиморфные методы должны быть объявлены как виртуальные. Виртуальные методы реализуют механизм позднего запаздывания.

Языки ООП.Язык, поддерживающий ООП должен обладать следующими признаками:

-основанные на объектах языки поддерживают объекты, то есть элементы с состояниями и операциями над ними;

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

-объектно-ориентированные языки имеют наследование и полиморфизм.

Чистые и гибридные языки ООП. Чистые языки ООП - это языки, которые не допускают других моделей программирования. Например, нельзя написать подпрограмму, если она не метод класса, нельзя описывать глобальные переменные. Примеры - SmallTalk и Eiffel. Гибридные языки программирования сочетают в себе элементы структурного (процедурного) программирования и ООП. Примеры гибридных языков: С++ и Object Pascal.

Статические и динамические языки ООП. Статические языки основаны на понятии типа данных и затрачивают много времени на компиляцию для контроля соответствия типов. Динамические языки имеют слабое понятие типа и осуществляют большинство проверок на этапе выполнения, это, как правило, интерпретируемые языки, например, SmallTalk. Статические языки, например, Object Pascal, компилируются.

Объектно-ориентированный анализ и проектирование

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

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

На этапе разработки эскизного и технического проектов осуществляется логическое проектирование, а затем физическое проектирование. Логическое проектирование в ООП заключается в разработке структуры классов: определяют поля для хранения составляющих состояния объектов и алгоритмы методов, реализующих аспекты поведения объектов. Физическое проектирование включает объединение описаний классов в модули, выбор механизма их подключения.

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