Обзорная лекция для студентов МОиАИС Госэкзамен 2015 года. Друзья мои, этот курс я вам не читала, потому все из источников. Можете почитать оригиналы. Успехов в подготовке и сдаче госов.
«ООП – технология создания сложного программного обеспечения, которая основана на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного типа (класса), а классы образуют иерархию с наследованием свойств» [].
Взаимодействие объектов в системе ООП реализовано с помощью передачи сообщений.
Достоинства.
Количество межмодульных вызовов сокращается, объемы информации, передаваемой от модуля к модулю, уменьшаются по сравнению с модульным программированием. Это достижимо за счет увеличения локализации данных, а также интегрирования данных с подпрограммами обработки. Такой подход позволяет независимо разрабатывать отдельные части (объекты) программы.
Использование новых технологических средств разработки, таких как наследование, полиморфизм, композиция, наполнение, позволяет конструировать из простых объектов сложные. В результате возможно создание библиотек, а, следовательно, из них систем повышенной сложности.
Недостаток.
Некоторое снижение быстродействия, возникающее вследствие усложнения организации программной системы.
Основные понятия и принципы ООП
Объект – функциональный элемент системы (имеющей свои параметры и поведение согласно условию задачи), обладающий самостоятельным поведением. Поведение объекта заключается в возможности выполнять некоторые действия в зависимости от полученных сообщений и собственного текущего состояния. Перед разработкой приложения ООП производят объектную декомпозицию, то есть представляют предметную область задачи в виде совокупности объектов, обменивающихся сообщениями.
«Абстракция – совокупность существенных характеристик некоторого объекта, которые отличают его от всех других видов объектов и, таким образом, четко определяют особенности данного объекта с точки зрения дальнейшего рассмотрения и анализа».
Принципы
Абстрагирование – процесс построения абстракций в предметной области решаемой задачи.
Результат абстрагирования реального предмета будет зависеть от конкретной задачи. Все свойства абстракции, характеризующие состояние и поведение анализируемого объекта, должны быть объединены в абстрактный тип (класс).
Ограничение доступа – сокрытие некоторых отдельных элементов реализации абстракции, которые не затрагивают ее существенные характеристики. Разграничивают две части абстракции:
интерфейс – основные характеристики состояния и поведения, которые представляют собой совокупность всех доступных извне элементов реализации абстракции;
реализация – все недоступные извне элементы реализации абстракции (внутренняя организация абстракции, механизмы реализации ее поведения).
Ограничение доступа позволяет конструировать систему поэтапно, не зависимо от того, как реализована та или иная абстракция; а также легко изменять реализацию отдельных объектов, не затрагивая других объектов системы.
Инкапсуляция – это сочетание объединения всех свойств, отражающих его состояние и поведение, в единую абстракцию и ограничение доступа к их реализации. По сути – это два первых принципа в одном.
Модульность – принцип, согласно которому программная система должна быть реализована в виде отдельных частей (модулей).
Иерархия – упорядочивание системы абстракций.
Целое/часть – означает, что существуют абстракции, включенные в рассматриваемую как ее части.
Общее/частное – означает, что одна абстракция является частным случаем другой.
На принципе иерархии обще/частное основан механизм наследования.
«Наследование – такое соотношение между абстракциями, когда одна из них использует структурную или функциональную часть другой или нескольких других абстракций (простое и множественное наследование соответственно).»
Типизация – специальное ограничение, которое накладывается на свойства объектов с тем, чтобы запретить взаимозаменяемость абстракций различных типов или наложить существенные ограничения на нее.
Принцип типизации позволяет обнаруживать ошибки на ранних этапах, упрощать документирование, генерировать более эффективный код.
Если тип связывается с программным объектом на стадии компиляции (раннее связывание), то считают, что тип связан статически. Если во время выполнения программы (позднее связывание), то – динамически.
Использование полиморфных объектов, то есть переменных-указателей на объекты, принадлежащие различным классам, расширяет возможности языка.
Свойства абстракций
«Параллелизм – свойство нескольких абстракций одновременно находиться в активном состоянии, т.е. выполнять некоторые операции».
Устойчивость – свойство абстракции существовать во времени независимо от процесса, породившего данный программный объект, и/или в пространстве, перемещаясь из адресного пространства, в котором он был создан.
В зависимости от устойчивости различают разные виды объектов.
Временные объекты создаются для хранения промежуточных результатов.
Локальные объекты существуют внутри подпрограмм, их время жизни начинается от вызова подпрограммы и заканчивается ее завершением.
Глобальные объекты существуют, пока программа находится в памяти.
Сохраняемые объекты хранят свои данные в файлах внешней памяти и по окончании работы программы.
Если остались вопросы, пишите, или ищите меня на кафедре 😉