Объектно-ориентированный подход к разработке компьютерных программ.
Основные подходы к разработке компьютерных программ:
- процедурно-ориентированный: основан на декомпозиции решения задачи виде процедур и функций.
- структурный: основан на упорядовачинии структур программы, теорема: любая программа может быть описана с помощью трех последовательностей (программирование без «go to»).
- модульный: рассматривает декомпозицию задач в виде взаимодействующих модулей. Модуль содержит данные и процедуры удобные для процедурной обработки.
- ООП: не является чем-то кардинально новым, это просто дальнейшее развитие принципов структурного программирования. ООП позволяет разложить проблему на составные части. Каждая часть становится самостоятельным объектом, содержащим код и данные, относящиеся к этому объекту. ООП включает несколько основополагающих концепций – инкапсуляция, наследование, полиморфизм
Основные концепции ООП.
Основное понятие ООП – это класс:
*класс соответствует определенному объекту в предметной области (модель объекта);
* класс – определенная программная структура, содержащая данные, методы обработки и обладает тремя свойствами: инкапсуляция, наследование, полиморфизм.
Инкапсуляция (содержание в оболочке) – объединение и локализация в рамках объекта данных и функций обработки этих данных (данные – поля, функции - методы). Данный принцип позволяет гибко разграничивать доступ к свойствам объекта, отсюда уменьшение искажения свойств объекта и несанкционированного использования.
Наследование – свойство классов порождать потомков: потомок автоматически наследует элементы данных и методы родителя, но так же может содержать и новые элементы данных и методы, так же может модифицировать существующие. Наследование позволяет отображать иерархию объектов предметной области. Наследование упрощает модификацию существующих классов. В С++ возможно как одиночное так множественное наследование, а в Java и в С# множественное наследование запрещено.
Полиморфизм –свойство объектов родственников по разному выполнять однотипные действия.