Разница между ООП и ПОП

Автор: Laura McKinney
Дата создания: 2 Апрель 2021
Дата обновления: 13 Май 2024
Anonim
Объектно ориентированное программирование в Python за 10 минут!
Видео: Объектно ориентированное программирование в Python за 10 минут!

Содержание


Процедурно-ориентированное программирование (POP) а также Объектно-ориентированное программирование (ООП) оба подхода программирования, который использует язык программирования высокого уровня. Программа может быть написана на обоих языках, но если задача очень сложная, ООП работает хорошо по сравнению с POP. В POP «безопасность данных» находится под угрозой, поскольку данные свободно перемещаются в программе, а также не достигается «повторное использование кода», что делает программирование длительным и трудным для понимания.

Большие программы приводят к большему количеству ошибок, и это увеличивает время отладки. Все эти недостатки приводят к новому подходу, а именно «объектно-ориентированное программирование». В объектно-ориентированном программировании основное внимание уделяется ‘безопасность данных«; он тесно связывает данные с функциями, которые над ним работают. Это также решает проблему ‘повторное использование кода’, Как если бы класс создавался, можно создавать его несколько экземпляров (объектов), в которых повторно используются члены и функции-члены, определенные классом.


Существуют и другие отличия, которые можно объяснить с помощью сравнительной таблицы.

    1. Сравнительная таблица
    2. Определение
    3. Ключевые отличия
    4. преимущества
    5. Недостатки
    6. Вывод


Сравнительная таблица

Основа Для сравненияPOPOOP
основной
Процедура / структура ориентирована.
Объектно-ориентированный.
Подходить Сверху вниз.Вверх дном.
основаОсновное внимание уделяется «как выполнить задачу», т.е. процедуре или структуре программы.Основное внимание уделяется безопасности данных. Следовательно, только объектам разрешен доступ к объектам класса.
разделениеБольшая программа делится на блоки, называемые функциями.Вся программа делится на объекты.
Режим доступа к объектуСпецификатор доступа не наблюдается.
Спецификаторы доступа: «открытый», «закрытый», «защищенный».
Перегрузки / ПолиморфизмНи перегружает функции, ни операторы.Он перегружает функции, конструкторы и операторы.
наследованиеИх не предоставление наследства.Наследование достигается в трех публичных и охраняемых режимах.
Сокрытие данных и безопасностьНет правильного способа скрыть данные, поэтому данные небезопасны Данные скрыты в трех режимах: публичном, частном и защищенном. следовательно безопасность данных увеличивается.
Обмен даннымиГлобальные данные распределяются между функциями в программе.Данные распределяются между объектами через функции-члены.
Функции / классы друзейНет понятия функции друга.Классы или функции могут стать друзьями другого класса с ключевым словом «друг».
Примечание: ключевое слово "друг" используется только в C ++
Виртуальные классы / функцииНет концепции виртуальных классов.Понятие виртуальной функции появляется при наследовании.
пример C, VB, Фортран, ПаскальC ++, JAVA, VB.NET, C # .NET.


Определение объектно-ориентированного программирования (ООП)

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

ООП разработан на основе базовых концепций «объект», «классы», «инкапсуляция или абстракция данных», «наследование» и «полиморфизм / перегрузка». В ООП программы могут быть разделены на модули путем разделения данных и функций, которые в дальнейшем могут использоваться в качестве шаблонов для создания новых копий модулей, если это необходимо. Таким образом, этот подход облегчает модульность программ, создавая разделенную область памяти для данных и функций.

Объектно-ориентированные концепции

  • Объекты: Рассматривается как переменная типа class и экземпляр класса.
  • Учебный класс: Это набор объектов похожего типа. Полный набор данных и код объекта создает пользовательский тип данных с помощью класса.
  • Абстракция данных и инкапсуляцияАбстракция - это не что иное, как метод сокрытия фоновых деталей и представления основных функций. Инкапсуляция - это метод упаковки данных и функций в единый блок.
  • наследованиеНаследование - это метод получения признаков объектов из одного класса в другие объекты класса. Другими словами, это помогает в выводе нового класса из существующего.
  • Полиморфизм: Полиморфизм предоставляет метод создания нескольких форм функции с использованием одного имени функции.
  • Динамическое связываниеУказывает, что код, связанный с конкретной процедурой, неизвестен до момента вызова во время выполнения.
  • прохождениеЭта концепция ООП обеспечивает взаимодействие между различными классами путем передачи и получения информации.

Определение процедурно-ориентированного программирования (POP)

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

Характеристики POP

  • При разработке программы POP следует принципу нисходящего программирования.
  • Большинство функций позволяет совместно использовать глобальные данные.
  • Он также делит большие программы на более мелкие части, называемые функциями.
  • Это позволяет свободное перемещение данных по системе от функций к функциям.
  • Данные преобразуются функциями из одной формы в другую.
  • Это придает важность понятию функций.
  1. POP - это процедурно-ориентированное программирование, а OOP - объектно-ориентированное программирование.
  2. Основное внимание СОЗ уделяется «как выполнить задачу”Это следует за блок-схемой, чтобы выполнить задачу. Основное внимание ООП уделяется безопасность данных так как только объектам класса разрешен доступ к атрибутам или функциям класса.
  3. функции это небольшие блоки больших программ или подпрограмм, которые выполняются для выполнения основной задачи. Напротив, атрибуты ООП и функции класса разделены между объекты.
  4. В POP нет специального режима доступа для доступа к атрибутам или функциям в программе. И наоборот, в ООП существует три режима доступа: «открытый», «частный», «защищенный», которые используются в качестве метода доступа для доступа к атрибутам или функциям.
  5. POP не поддерживает концепцию перегрузки / полиморфизма. Напротив, ООП поддерживает перегрузку / полиморфизм, что означает использование одного и того же имени функции для выполнения разных функций. Мы можем перегрузить функции, конструктор и операторы в ООП.
  6. В POP нет концепции наследования, тогда как ООП поддерживает наследование, которое позволяет использовать атрибут и функции другого класса, наследуя его.
  7. POP менее безопасен по сравнению с ООП, поскольку в ООП спецификатор доступа ограничивает доступ к атрибутам или функциям, которые повышают безопасность.
  8. В POP, если некоторые данные должны быть общими для всех функций в программе, они объявляются глобально вне всех функций. Находясь в ООП, к данным-членам класса можно получить доступ через функции-члены класса.
  9. В POP отсутствует понятие функции друга. В отличие от этого, в ООП существует концепция функции-друга, которая не является членом класса, но, поскольку она является элементом-другом, она может получить доступ к элементам данных и функциям-членам класса.
  10. В POP нет концепции виртуальных классов, тогда как в ООП виртуальные функции поддерживают полиморфизм.

преимущества

POP (процедурно-ориентированное программирование)

  • Предоставляет возможность повторного использования одного и того же кода в разных местах.
  • Облегчает отслеживание хода программы.
  • Способен создавать модули.

ООП (объектно-ориентированное программирование)

  • Объекты помогают в разбиении задач в проекте.
  • Безопасные программы могут быть построены с использованием сокрытия данных.
  • Это может потенциально отобразить объекты.
  • Позволяет классифицировать объекты на различные классы.
  • Объектно-ориентированные системы могут быть легко обновлены.
  • Избыточные коды могут быть устранены с помощью наследования.
  • Коды могут быть расширены с помощью повторного использования.
  • Большая модульность может быть достигнута.
  • Абстракция данных повышает надежность.
  • Гибкость благодаря концепции динамического связывания.
  • Отсоединяет основную спецификацию от ее реализации с помощью сокрытия информации.

Недостатки

POP (процедурно-ориентированное программирование

  • Глобальные данные уязвимы.
  • Данные могут свободно перемещаться внутри программы
  • Трудно проверить положение данных.
  • Функции ориентированы на действия.
  • Функции не способны относиться к элементам задачи.
  • Проблемы реального мира не могут быть смоделированы.
  • Части кода взаимозависимы.
  • Один код приложения не может быть использован в другом приложении.
  • Данные передаются с помощью функций.

ООП (объектно-ориентированное программирование)

  • Это требует больше ресурсов.
  • Динамическое поведение объектов требует оперативной памяти.
  • Обнаружение и отладка сложнее в сложных приложениях, когда выполняется передача.
  • Наследование делает их классы тесно связанными, что влияет на возможность повторного использования объектов.

Вывод

Из-за недостатков СОЗ возникает необходимость в ООП. ООП исправляет недостатки POP, вводя понятия «объект» и «классы». Это повышает безопасность данных и автоматическую инициализацию и очистку объектов. ООП позволяет создавать несколько экземпляров объекта без какого-либо вмешательства.