27. Объектно-ориентированное программирование (ООП). Основные понятия и принципы ООП.
ООП - это подход, в котором методы обработки данных жестко связаны. Данные и поведение представлены в виде классов, экземпляры которых - объекты. ООП позволяет пользователю вводить собственные типы данных, расширяя тем самым набор встроенных в язык типов данных. Имеет схему "запрос -> объект -> данные". Основными понятиями ООП являются объект (экземпляр класса), класс, метод и сообщение (запрос). Основные характеристики ООП – инкапсуляция, полиморфизм и наследование.
Под инкапсуляцией понимается сокрытие данных и операций АТД от внешних программ, использующих их. Другими словами, подразумевается возможность описать как единое целое данные и манипулирующий ими программный код. Можно представить себе объект как суперданные, которые содержат и собственно данные, и присущую им функциональность.Полиморфизм (множество форм) - средство для придания различных значений одному и тому же сообщению в зависимости от типа обрабатываемых данных..Наследование-это средство получения новых типов данных (классов) из уже существующих типов, называемых базовыми классами. При этом повторно используется существующий код. Порождённый класс образуется из базового путем добавления или изменения кода, т.е. приобретение свойства другого объекта и добавления к ним черты, характерные только для него. Класс - это способ инкапсуляции типов данных и связанных с ними функций. Раздел атрибутов предназначен для объявления переменных класса (данных). Раздел операций предназначен для объявления и определения операций, которые можно выполнять над объектами класса.
В ООП операции часто называют методами класса. Методы описывают поведение объектов класса в результате выполнения операций. Отношение наследования обычно представляют в виде графа, узлы которого соответствуют классам. Этот граф изображает иерархию классов с точки зрения наследования. Если наследование единичное (иерархическое), соответствующий класс является деревом. В корне дерева находится прародитель - класс, для которого все остальные классы являются потомками (например, дерево каталогов диска С). Автоматическая сборка мусора в динамической памяти-это существенно повышает надежность программ и эффективность использования памяти, поскольку исключает слишком раннее и слишком позднее "уничтожение" объектов.
Недостатки ООП-сложность. Достоинтсва ООП-1.Классы позволяют проводить конструирование из полезных компонент, обладающих простыми инструментами, что дает возможность абстрагироваться от деталей реализации. 2.Данные и операции вместе образуют определенную сущность, и они не «размываются» по всей программе, как это нередко бывает в случае процедурного программирования.3.Локализация кода и данных улучшает наглядность и удобство сопровождения программного обеспечения.4. Инкапсуляция информации защищает наиболее критичные данные от несанкционированного доступа.
Направления развития ОО языков
1.Отражение в языке параллельности. 2.Создание распределенных объектно-ориентированных систем, в частности, баз данных, предпосылкой которому является поддержка изолированности объектов и обмена сообщениями между ними. 3.Введение множественного наследования и соответственно сетевой структуры классов. Это усложняет реализацию системы, но делает ее более универсальной.