Ооп

.

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

Объектно-ориентированное программирование (ООП) — это парадигма (совокупность понятий и идей) программирования, в рамках которой «во главу угла» ставят понятия объектов и классов. Сейчас ООП так или иначе присутствует во всех языках, поэтому понимание его основ просто необходимо для всех, кто собирается заняться программированием.

Стоит сразу определить базовые понятия класса и объекта:

  • Класс — это шаблон, описание ещё не созданного объекта. Класс содержит данные, которые описывают строение объекта и его возможности, методы работы с ним;
  • Объект — экземпляр класса. То, что «рождено» по «чертежу», то есть по описанию из класса. В качестве примера объекта и класса можно привести технический чертёж для изготовления детали — это класс. Выточенная же на станке по размерам и указаниям из чертежа деталь — объект.

Появление объектно-ориентированного программирования стало результатом возросших требований к функционалу программ, когда описывать объект приходилось раз за разом в разных участках кода. Тогда и было введено понятие класса, параметры которого задавались единожды, а после в коде оставлялись только ссылки на класс, чтобы код самостоятельно «собрал» объект. На ООП-языке Java описание класса выглядит так:

// Описываем отдельный новый класс class Circle { // свойства класса public double x; // абцисса центра public double y; // ордината центра public double y; // радиус // методы класса // выводит на экран параметры окружности public void printCircle(){ System.out.println(«Окружность с центром (» + x + «;» + y + «) и радиусом » + r); } // перемещает центр, движение окружности public void moveCircle(double a, double b){ x = x + а; y = y + b; } // масштабируем, выполняем преобразование подобия с коэффициентом k public void zoomCircle(double k){ r = r * k; } }

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

В качестве более живого примера объектно-ориентированного программирования можно привести мастерскую, где есть старший слесарь (программист) и ученики (разные участки кода). При устаревших парадигмах программирования старшему слесарю пришлось бы сначала объяснить ученику №0, как вырезать деталь (создать объект), затем ученику №1 то же самое, потом ученику №2 и так далее. ООП же даёт слесарю целую пачку бесконечных подробных чертежей (классов) деталей, которые он может раздавать ученикам вместо повторного объяснения (заведения описания объекта). Как нетрудно догадаться, это ускоряет работу и позволяет старшему слесарю уделить внимание более важным проблемам мастерской.

Основные понятия ООП

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

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

Понятие абстракции в объектно-ориентированном программировании

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

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

Принцип инкапсуляции в ООП

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

Это одновременно и облегчает конечному пользователю работу с программой, и защищает данные и само приложение от постороннего вмешательства. Пользователь может работать со всем функционалом через интерфейс, не задумываясь над тем, как программа работает. Инкапсуляцию применяют:

  • когда нужно сохранить некоторый участок кода без изменений со стороны пользователя;
  • когда нужно ограничить доступ к коду — в связи с уникальностью используемых техник, которые автор хочет оставить «при себе»;
  • когда изменение кода повлечёт за собой неработоспособность программы или её взлом.

Наследование классов в ООП

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

Существует также множественное наследование, при котором у класса-наследника может быть несколько «родителей». При этом класс наследует методы всех своих отцов и матерей, что часто приводит к ошибкам. Наследование требует определения ещё одного понятия:

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

Принцип полиморфизма

Полиморфизм — способность объектов самим определять, какие методы они должны применить в зависимости от того, где именно в коде они находятся. То есть, объект может изменяться в зависимости от своего местоположения и действовать по-разному, что позволяет не заводить лишних структур. Иначе говоря: один интерфейс — множество решений.

Полиморфизм позволяет повысить процент повторного использования кода и сократить тем самым размер программы и временные затраты на её написание.

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

На сегодняшний день самые популярные языки программирования — это объектно-ориентированные, к примеру, С++ и Java. Также существуют языки, которые не предполагают написания программных операторов, а программирование происходит в виде визуального проектирования с помощью интерфейса языка. Примером таких систем являются VisualBasic, Delphiи C++ Builder.

Объектно-ориентированное программирование для чайников

Вопрос

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ

КОММЕНТАРИИ К ВОПРОСАМ, ВЫНОСИМЫМ НА ГОСУДАРСТВЕННЫЙ ЭКЗАМЕН ПО КУРСУ

Оренбург 2012

1. Объектно-ориентированная методология разработки программ. Достоинства и недостатки объектно-ориентированного подхода. Привести пример описания объектного типа.

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

Рисунок 1 – Основные средства объектно-ориентированного языка программирования

Достоинства ООП:

— Основным достоинством объектно-ориентированного программирования по сравнению с модульным программированием является ʼʼболее естественнаяʼʼ декомпозиция программного обеспечения, которая существенно облегчает его разработку.

— Кроме этого, объектный подход предлагает новые способы организации программ, основанные на механизмах наследования, полиморфизма, композиции, наполнения.

— Эти механизмы позволяют конструировать сложные объекты из сравнительно простых. В результате существенно увеличивается показатель повторного использования кодов и появляется возможность создания библиотек классов для различных применений.

Недостатки ООП обуславливаются следующим:

— Освоение базовых концепций ООП не требует значительных усилий. При этом выработка библиотек классов и их использование требуют существенных трудозатрат.

— Документирование классов – задача более трудная, чем это было в случае процедур и модулей.

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

— Код для обработки сообщения иногда ʼʼразмазанʼʼ по многим методам (иначе говоря, обработка сообщения требует не одного, а многих методов, которые бывают описаны в разных классах).

Основной недостаток ООП — неĸᴏᴛᴏᴩᴏᴇ снижение быстродействия за счёт более сложной организации программной системы.


к оглавлению   к алгоритмизации   СУБД   ЯиМП   3GL   4GL   5GL   технологии прогр.

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

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

Другим фундаментальным понятием является класс.

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

Следующими важнейшими принципами ООП являются наследование и полиморфизм.

Наследование — предусматривает создание новых классов на базе существующих и позволяет классу потомку иметь (наследовать) все свойства класса — родителя.

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

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

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

Современными языками объектно-ориентированного программирования являются С++ и Java. С середины 90-х годов многие объектно–ориентированные языки реализуются как системы визуального проектирования, в которых интерфейсная часть программного продукта создается в диалоговом режиме, практически без написания программных операторов. К объектно – ориентированным системам визуального проектирования относятся Visual Basic, Delphi, C++ Builder, Visual C++. Язык VBA (Visual Basic for Applications) – язык приложений Microsoft Office (Excel, Word, Access, Power Point и др). VBA соблюдает основной синтаксис языка и правила программирования языков Basic – диалектов, позволяет создавать макросы для автоматизации выполнения некоторых операций и графический интерфейс пользователя, интеграцию между различными программными продуктами.

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

к оглавлению   к алгоритмизации   СУБД   ЯиМП   3GL   4GL   5GL   технологии прогр.

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

Программирование

1. Объектом объектно-ориентированного программирования называется …

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

2. В технологической цепочке решения задач на ЭВМ

отсутствует пункт …

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

3. При решении задачи на компьютере на этапе программирования не выполняется

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

4. Для объектно-ориентированной технологии программирования верно утверждение, что …

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

5. При решении задачи на компьютере на этапе отладки программы не выполняется

  запись алгоритма на языке программирования
    трансляция исходного текста программы
    тестирование программы
    компоновка программы

6. Операторы присваивания в языках программирования …

    задают значения переменных
      меняют значения констант
      вводят значения переменных
      определяют внутреннее представление данных в памяти компьютера

7. Верным является утверждение, что …

    понятие «транслятор» является более общим по сравнению с понятием «компилятор»
      понятия «транслятор» и «компилятор» являются синонимами
      понятие «компилятор» является более общим по сравнению с понятием «транслятор»
      понятия «транслятор» и «компилятор» независимы друг от друга

8. Объектом объектно-ориентированного программирования называется …

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

9. Преобразование всей программы, представленной на одном из языков программирования, в машинные коды называется …

    компиляцией
      интерпретацией
      компоновкой
      генерацией кода

10. Для объектно-ориентированной технологии программирования верно утверждение, что …

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

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

Блог о программировании

Идея классов является основой ООП и отражает строение объектов реального мира, поскольку каждый предмет или процесс обладает набором характеристик или отличительных черт, иными словами, свойствами и поведением.
Класс – описание множества объектов, связанных общностью структуры и поведением. Существует явное разделение внешнего и внутреннего описания класса (интерфейса и реализации). Интерфейс отражает внешнее поведение объекта, описывая абстракцию поведения всех объектов данного класса, но скрывает структуру и несущественные детали. Реализация составляет его внутреннее проявление и определяет особенности поведения.
Объект представляет собой особый опознаваемый предмет или сущность (реальную или абстрактную), имеющие четко определенное функциональное назначение в данной предметной области.

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

11. Выражению соответствует следующее арифметическое выражение на языке программирования (операция возведения в степень обозначена символом «^») …

12. Язык программирования АДА, который, в частности, был использован при разработке комплекса пилотажно-навигационного оборудования для российского самолета-амфибии Бе-200, был создан в _________ году.

   
     
     
     

13. Одно из основополагающих понятий объектно-ориентированного программирования «инкапсуляция» означает …

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

14. Для объектно-ориентированной технологии программирования верно утверждение, что наследование – это …

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

15. В технологической цепочке решения задач на ЭВМ

отсутствует пункт …

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

16. Язык BASIC был создан для …

    обучения программированию
      выполнения научно-технических расчетов
      замены Ассемблера
      выполнения экономических расчетов

17. Языком логического программирования является …

    PROLOG
      LISP
      PASCAL
      C++

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


⇐ Предыдущая45678910111213Следующая ⇒


Дата публикования: 2015-01-26; Прочитано: 353 | Нарушение авторского права страницы



studopedia.org — Студопедия.Орг — 2014-2018 год.(0.003 с)…

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

.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *