2.Основные понятия объектно-ориентированного подхода: объекты, классы и методы.
Это метод построения программ в виде множества взаимодействующих объектов. Базовыми понятиями объектно-ориентированного программирования являются объекты и классы. Объект определяется через его свойства: идентифицируемость (объект имеет имя), состояние,поведение.
Состояние объекта выражается всеми компонентами объекта (статическими) и текущими значениями этих компонентов (динамическими). Поведение объекта определяет, как объект изменяет свои состояния и взаимодействует с другими объектами, т.е. выражает динамику объекта и его реакцию на поступающие сообщения. Идентификация объекта–это свойство, которое позволяет отличить объект от других объектов того же или других класса.
Класс – это множество объектов, имеющих общую структуру и общее поведение. Базовыми правилами объектно-ориентированного программирования являются: определение классов, определение всех необходимых операций для каждого класса, обеспечение расширяемости (открытости) классов с использованием принципа наследования.
Объект — представляет собой конкретный опознаваемый предмет, единицу или сущность (реальную или абстрактную), имеющую четко определенное функциональное назначение в данной предметной области.
Свойства которыми может обладать объект могут быть трех видов.
— Атрибуты (attribute), такие как объем, положение или цвет, символизируют связи с другими объектами и состояние самого объекта.
— Процедуры или услуги, предоставляемые объектом, такие как перемещение или расширение. Их называют операциями (operation) или методами (method).
— Правила, которые устанавливают взаимосвязи свойств объекта или определяют условия его жизнеспособности. Их иногда называют инвариантами (invariant).
Строго говоря, методы являются функциями, которые реализуют операции, а операции — это абстрактные спецификации методов
- Объектно-ориентированный подход в программировании. Базовые принципы о-о подхода.
- Этапы разработки объектно-ориентированных программ.
- объектно-ориентированный анализ(создание объектно-ориентированной модели предметной области приложения ПО; здесь объекты отражают реальные объекты-сущности, также определяются операции, выполняемые объектами);
- объектно-ориентированное проектирование(разработка объектно-ориентированной модели ПО (системной архитектуры) с учетом системных требований; в объектно-ориентированной модели определение всех объектов подчинено решению конкретной задачи);
- объектно-ориентированное программирование(реализация архитектуры (модели) программы с помощью объектно-ориентированного языка программирования).
- Основы алгоритмизации. Понятие и св-ва @. Способы описания @-ов. Типы @-ов.
Объектно-ориентированное программирование
Объектный подход является следующей ступенью в развитии структурного программирования. В основе объектно-ориентированного программирования лежит идея объединения в одной структуре, называемой объектом,данных и программ, которые обрабатывают эти данные. Понятие объекта включает в себя параметры объекта (свойства) и программные средства для работы с ним (методы). По существу каждый объект представляет собой программный комплекс. Данныеэтой программы называются свойствами,а отдельные подпрограммыобработки данных называются методами. В объектно-ориентированном программировании используется определенная форма записи при работе с объектами. Объекты характеризуются свойствами. Изменять свойства объектов можно с помощью оператора присвоения. Обращение к свойству объекта: ОБЪЕКТ. СВОЙСТВО = А В данном примере свойству объекта присвоено значение переменной А. В = ОБЪЕКТ. СВОЙСТВО В данном примере переменной В присвоено значение свойства объекта. Вызов метода, выполняющего действия над тем или другим объектом, записывается следующим образом: ОБЪЕКТ. МЕТОД Объекты одного и того же типа объединяются в классы.Классы, участвующие в определении нового класса, называются базовыми или родительскими, а создаваемые классы — производными. В общем виде совокупность классов (базовых и производных) может представлять собой иерархическую структуру. События— сигналы, формируемые пользователем или программой, для которых объект имеет свои методы обработки. В основе объектно-ориентированного программирования лежат три важных понятия: инкапсуляция, наследование и полиморфизм. Инкапсуляция — позволяет объединить данные и код в один объект и при этом скрыть реализацию объекта от пользователя. Пользователю предоставляется возможность взаимодействовать с объектом только через его интерфейс. Наследование— это способность описать новый класс на основе уже существующего (родительского). При этом свойства и функциональность родительского класса заимствуются новым классом. Полиморфизм— это возможность по разному трактовать одноименные объекты, их свойства и методы в зависимости от каких-то внешних обстоятельств. Полиморфизм позволяет писать более абстрактные программы и повысить коэффициент повторного использования кода. Примеры вопросов 1. Базовыми понятиями объектно-ориентированного программирования являются:
- объект;
- класс;
- структура;
- функция?
2. В объектно-ориентированном программировании формат программного кода, задающий использование метода, имеет вид:
- . ;
- . : = ;
- . ;
- = ?
3. На каком этапе можно изменить свойства объекта при создании приложения в объектно-ориентированном программировании:
- только на этапе создания программного кода приложения;
- на этапе проектирования формы и на этапе создания программного кода приложения;
- на этапе тестирования программного кода приложения;
- только на этапе проектирования формы?
4. Установите правильное соответствие между понятиями объектно-ориентированного программирования и их описаниями.
- Свойство — параметр объекта, который определяет поведение объекта.
- Событие — сигнал, формируемый внешней средой, на который объект должен отреагировать.
- Класс — совокупность объектов, обладающая общими свойствами и поведением.
5. В концепции объектно-ориентированного подхода к программированию НЕ ВХОДИТ:
- дискретизация;
- инкапсуляция;
- полиморфизм;
- наследование?
- Как называется в объектно-ориентированном программировании способность объекта сохранять свойства и методы класса-родителя? — Наследованием.
Вариант из лекции Хр. 12.05.2010Структурное программирование основано на модульной структуре программного продукта и типовых управляющих структурах алгоритмов обработки данных различных программных модулей. Типы управляющих структур: – последовательность (линейный алгоритм); – альтернатива (условие выбора); – цикл. Существует несколько методов структурного программирования:
- Структурное — Нисходящее (иерархическое, сверху – вниз),
- Структурное – Восходящее (снизу – вверх),
- Структурное – модульное,
Нисходящее– будущая программа разбивается на более мелкие элементы, которые тоже могут быть разбиты на простые и так до тех пор, пока не будут доведены до элементарных операций, которые могут быть реализованы на ЭВМ. Структурная схема нисходящего модуля показана на рисунке 4.13. Рисунок 4.13. Структурная схема нисходящего модуля Этот метод применяют при разработке сложных по характеру и большому объему программ, когда к их разработке привлекают большое количество программистов, работающих параллельно. Реализация метода нисходящего программирования тесно связана с понятием Модульное проектирование.Модуль– это последовательность логически связанных фрагментов, оформленных как отдельные программы. Модули должны обладать свойствами:
- На модуль можно ссылаться по имени;
- По завершению модуль должен возвращать управление тому модулю, который его вызывал;
- Модуль должен иметь один вход и выход, иметь небольшой размер.
Структурное программирование облегчает процесс разработки и отладки программных модулей, облегчает процесс их понимания и модификации. Структурное программирование нельзя сводить только к программированию без использования операторов безусловного перехода типа GOTO. Это программирование объединяет несколько взаимосвязанных способов создания ясных, легких для понимания программ с реализацией принципа их самодокументирования(т.е. включение комментариев), а так же с описанием функциональных возможностей и правил использования на отдельных шагах исполнения алгоритма. Объектно-ориентированное программированиеиспользует следующие базовые понятия: – объект – совокупность свойств (параметров) определенных сущностей и методов их обработки (программных средств). Объект содержит инструкции (программный код), определяющий действия, которые может выполнять объект, и обрабатываемые данные; – свойство объекта – характеристика объекта, его параметр; – метод обработки – программа действий над объектом или его свойствами; – событие – изменение состояния объекта; – класс объектов – совокупность объектов, характеризующихся общностью применяемых методов обработки или свойств. Объектно-ориентированный подход основан на трёх основополагающих концепциях:– инкапсуляция;– полиморфизм;– наследование.Инкапсуляция – это механизм, который объединяет данные и код, манипулирующий этими данными Полиморфизм – это свойство, которое позволяет одно и то же имя использовать для решения двух или более схожих, но технически разных задач. Наследование – это процесс, посредством которого один объект может приобретать свойства другого. 17
15 Вопрос
Исторически сложилось так, что программирование возникло и развивалось как процедурное программирование, которое предполагает, что основой программы является алгоритм, процедура обработки данных. Объектно-ориентированное программирование — это методика разработки программ, в основе которой лежит понятие объекта как некоторой структуры, описывающей объект реального мира, его поведение. Задача, решаемая с использованием методики объектно-ориентированного программирования, описывается в терминах объектов и операций над ними, а программа при таком подходе представляет собой набор объектов и связей между ними. Другими словами можно сказать, что объектно-ориентированное программирование представляет собой метод программирования, который весьма близко напоминает наше поведение. Оно является естественной эволюцией более ранних нововведений в разработке языков программирования. Объектно-ориентированное программирование является более структурным, чем все предыдущие разработки, касающиеся структурного программирования. Оно также является более модульным и более абстрактным, чем предыдущие попытки абстрагирования данных и переноса деталей программирования на внутренний уровень.
Использование объектно-ориентированного программирования является хорошим решением при разработке крупных программных проектов. Чем проект объемнее и сложнее, тем больше выгоды вы получите при использовании объектно-ориентированной технологии программирования. Одним из наибольших преимуществ объектно-ориентированного программирования является возможность многократного использования программного кода. Если вы, к примеру, создали класс, то можете порождать от него новые классы и изменять их свойства и функциональное назначение.
В качестве примера объектно-ориентированного языка в дальнейшем будем рассматривать Borland Pascal. Языковые расширения Borland Pascal предоставляют все средства объектно-ориентированного программирования: большую структурированность и модульность, большую абстрактность и встроенную непосредственно в язык возможность повторного использования. Все эти характеристики соответствуют коду, который является более структурированным, более гибким и более легким для обслуживания.
Объектно-ориентированное программирование требует оставить в стороне характерные представления о программировании, которые долгие годы рассматривались как стандартные. Однако после того, как это сделано, объектно-ориентированное программирование становится простым, наглядным и превосходным средством разрешения многих проблем, которые доставляют неприятности традиционному программному обеспечению.
1. Основные понятия объектно-ориентированного программирования
В основе объектно-ориентированного язык программирования лежат два основных понятия: объект и класс. Основными характеристическими свойствами этих понятий являются:
Инкапсуляция — комбинирование записей с процедурами и функциями, манипулирующими полями этих записей, формирует новый тип данных — объект (под записью понимается переменная типа «запись»).
Наследование — определение объекта и его дальнейшее использование для построения иерархии порожденных объектов с возможностью для каждого порожденного объекта, относящегося к иерархии, доступа к коду и данным всех порождающих объектов.
Полиморфизм — присваивание действию одного имени, которое затем совместно используется вниз и вверх по иерархии объектов, причем каждый объект иерархии выполняет это действие способом, именно ему подходящим.