Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AllCandC++Lectures.docx
Скачиваний:
2
Добавлен:
25.09.2019
Размер:
52.56 Кб
Скачать

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

В основе программирования могут лежать разные идеи. В соответствии с этим существует несколько парадигм программирования. Парадигма - важная теоретическая база. Парадигмы:

а) процедурная. В основе построения программ лежит алгоритмический подход. Языки процедурного программирования: pascal, c, fortran.

б) функциональная. В ее основе лежит математическое понятие функции. Вся программа и ее части рассматриваются как функции. В математических функциях в отличие от программных функций невозможен побочный эффект. Языки: lisp, scheme.

в) логическая. В основе построения программ лежит логика предикатов. Основная особенность: программа носит декларативный, а не процедурный характер. Языки prolog.

г) объектно-ориентированное. В основе программ лежат объектные модели предметных областей.

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

1) Абстрагирование

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

2) Декомпозиция

Существует множество подходов для композиции программ. В первых процедурных языках появились подпрограммы или функции, которые выполняли некоторую логически-завершенную цепь вычислений. Далее, с появлением C появилась идея раздельной компиляции. Это дало возможность создавать библиотеки с объектным кодом программ и затем многократно использовать их в разных проектах. Здесь композиция выполнялась по функциональному принципу. То есть, что делает та или иная функция. ООП принесло новый принцип декомпозиции. Модули в этом случае соответствуют классам объектов.

3)Инкапсуляция

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]