Объектно-ориентированное программирование. Процедурное, модульное программирование

Процедурное, модульное программирование

Процедурное программирование основано на использовании следующих методов (приёмов) программирования.

Метод декомпозиции (нисходящего проектирования) – это разделение программы на подпрограммы простейшей структуры и представление программы в виде иерархии подпрограмм.

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

Метод структурного программирования подпрограмм, заключается в следующем:

- разделение подпрограммы на вложенные блоки, что позволяет локализовать переменные и операторы их обработки, структурировать подпрограмму;

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

- форматирование текста подпрограммы, т.е. использование отступов для отображения вложенности блоков, применение читаемых идентификаторов и использование комментариев, что приводит к повышению читабельности программ и к облегчению их сопровождения.

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

Объектный подход к программированию использован в новых версиях языков программирования Pascal, C++, Modula, Java.

Основные методы объектно-ориентированного программирования это инкапсуляция, наследование, полиморфизм.

Инкапсуляция - это объединение данных и функций для работы с этими данными в абстрактные типы данных - классы. Переменные типа класс называются объектами.

Преимущества инкапсуляции проявляются в следующем:

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

- Управление доступом к элементам класса. Атрибуты доступа private, protected, public объявляют элементы класса соответственно закрытыми, защищенными и открытыми для доступа.

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

Наследование (inheritance) - это порождение новых абстрактных типов данных (производных классов) на основе существующих абстрактных типов данных (базовых классов), причём производный класс наследует данные и функции базового класса, а также имеет собственные данные и функции.

Преимущества наследования проявляются в следующем:

- исключение дублирования элементов-данных и элементов-функций за счет повторного использования элементов класса в производных классах;

- упрощение программирования, т.к. наследуемые и собственные элементы класса находятся в одной иерархии классов и не разбросаны по всей программе;

- возможность оптимального моделирования объектов реального мира в прикладной области за счет иерархии классов.

Полиморфизм (polymorphism) означает способность объектов классов, связанных наследованием, реагировать различным образом на одно и то же сообщение.

Полиморфизм имеет следующие виды.

Перегрузка операций - это переопределение действий операций применительно к объектам конкретных классов.

Преобразование типов данных при совместном их использовании тоже является одним из методов полиморфизма.

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

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: