Атрибуты и методы классов




Стили программирования

При создании программ можно пользоваться различными стилями программирования. Их выделяют всего пять:

· процедурно-ориентированный — направленный на представление программы как множества поочередно вызываемых процедур;

· объектно-ориентированный — направленный на представление программы как набора взаимодействующих объектов;

· логико-ориентированный — направленный на выполнение целей, выраженных в терминах исчисления предикатов;

· ориентированный на правила — выполнение правил «если-то»;

· ориентированный на ограничения.

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

Отличительные особенности объектно-ориентирован­ного подхода

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

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

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

Концептуальная база объектно-ориентированного стиля

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

Объектная модель имеет четыре главных свойства. Это [1]:

· абстрагирование — выделение существенных характеристик объекта, отличающих его от других видов объектов;

· инкапсуляция — скрытие внутренней реализации объекта за предоставляемым этим объектом интерфейсом;

· модульность — способность системы быть разложенной на внутренне сильно или слабо связанные между собой модули;

· иерархия — упорядочивание абстракций и расположение их по уровням.

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


Это:

· типизация — создание объектов на основе шаблонов определенного типа;

· параллелизм — способность системы обрабатывать несколько сообщений или задач параллельно;

· сохраняемость — способность хранить не только данные, но и объекты в промежутке между отдельными запусками системы.

Классы и объекты

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

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

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

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

Свойства классов

Важнейшими свойствами классов считаются: инкапсуляция, наследование и полимормизм.

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

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

Наследование

Наследование — одно из самых привлекательных свойств классов. Это свойство позволяет создавать на основе одного или нескольких родительских классов дочерние классы (подклассы) со свойствами родительского и дополнительными возможностями.

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

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

Полимормизм

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

Атрибуты и методы классов

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

В терминах Rational Rose методы называют операциями, поэтому b дальнейшем будем пользоваться обоими терминами. Свойства и методы могут иметь различные типы доступа и реализации, что в Rational Rose отображаетсяспециальными обозначениями, которые мы разберем непосредственно при создании свойств и методов.

Примерные вопросы для самопроверки и защиты

1. Какие стили программирования используются для создании программ?

2. Укажите отличительные особенности объектно-ориенти­рованного подхода.

3. Опишите концептуальную базу объектно-ориентированного стиля.

4. Опишите отличия между классами и объектами.

5. Опишите свойства классов.

Литература

1. Трофимов С.А. Case -технологии: практическая работа в Rational Rose — М.: ЗАО «Издательство БИНОМ», 2001 г. — 272 с.: ил.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-15 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: