-Рубрики

 -Музыка

 -Подписка по e-mail

 

 -Поиск по дневнику

Поиск сообщений в TheLenka

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 03.01.2009
Записей:
Комментариев:
Написано: 265


Основные принципы и понятия ООП (инкапсуляция, наследование, полиморфизм)

Среда, 24 Июня 2009 г. 15:58 + в цитатник

Объектно-ориентированное программирование  соответствует новому подходу к созданию программных продуктов - объединению в одной конструкции данных и функций для обработки этих данных. Такая конструкция называется классом. Отдельные экземпляры (пе¬ременные) данного класса называются объектами. Отсюда и назва¬ние - объектно-ориентированное программирование (ООП). Новым в понятии класса является переход к преимущественно локальным данным, обрабатываемым собственным набором функций.
Класс является центральным понятием ООП; это обобщение и объединение понятий структуры и функции. Поскольку класс содер¬жит не только данные, но и функции, в рамках одной конструкции языка сводится воедино все, что необходимо для работы с моделями объектов реального мира. Любой класс служит для создания нового производного типа данных, удобного при решении конкретного класса прикладных задач.
Данные и функции собирательно называются членами класса (в англоязычной литературе - members). Данным и функциям класса в английском языке отвечают устоявшиеся термины: data members и member functions соответственно. В русском языке подходящая тер¬минология еще только устанавливается. Данные класса часто называют элементами данных, а также компонентными данными и свой¬ствами. Функции класса обычно называют методами класса или компонентными функциями. Переменные, имеющие тип данного класса А, называются объектами класса (или типа) А.
1). Инкапсуляция
Инкапсуляция достигается путем введения нового средства язы¬ка программирования - класса. Она заключается в совмещении структур данных с функциями для их обработки. При этом свойства объектов хранятся в структурах данных, а их поведение определяется функциями. Благодаря инкапсуляции значительно возрастают воз¬можности создания новых типов данных.
Кроме того, понятие инкапсуляции включает и защиту данных класса от некорректного использования.
2). Наследование
Наследование означает наличие механизма создания новых классов, которые наследуют данные и функции от одного или не¬скольких ранее определенных классов. Вторая ситуация известна как множественное наследование. При этом возможно переопределение или добавление новых данных и функций (методов). В результате создается иерархическая система классов. Она во многом подобна системе классификации объектов животного или растительного ми¬ра. Если класс В наследует классу А, то В называют производным классом, а класс А - базовым классом по отношению к В.
Базовые классы обычно являются более абстрактными. Каждый следующий уровень производных классов приобретает новые, спе¬цифичные для него черты. После того как некоторая характеристика (свойство или метод) определена, все классы-наследники могут иметь эту характеристику по определению. Наследование позволяет создавать новые классы не «с нуля», а отталкиваясь от уже готовых классов. При этом создание каждого уровня иерархии классов требует сравнительно небольших усилий со стороны программиста. Наследование также делает удобным использование библиотек готовых классов.
3). Полиморфизм
Полиморфизм означает возможность применения одинаковых обозначений (имен функций, знаков операций) для выполнения ана¬логичных, хотя и различающихся действий. Это позволяет снизить сложность программирования за счет уменьшения количества ис¬пользуемых обозначений. Такая концепция выражается фразой «один интерфейс, множество методов».
Полиморфизм реализуется с помощью перегрузки функций и операций, а также механизма позднего связывания и виртуальных функций. Конкретный способ действия вызывается в зависимости от того, данные какого типа нуждаются в обработке. Выбор этого кон¬кретного способа ложится на компилятор.
Программирование в соответствии с объектно-ориентированной методологией существенно отличается от традиционного. Согласно Б.Страуструпу, главное в объектно-ориентированном программиро¬вании - попытаться представить свою задачу как множество взаимо¬действующих понятий, представленных в виде классов и объектов. Необходимо:
• определить, какие классы нужны для решения задачи,
• определить полный набор операций для каждого класса, реализо¬вать этот набор, создавая методы класса и используя полимор¬физм,
• выразить общие свойства явным образом, используя наследова¬ние.


 


 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку