Составители:
Рубрика:
Глава 3. ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
§ 3.1. Классы и объекты
С увеличением размера программы удерживать в памяти архитектуру и детали
проекта становиться довольно сложно. Возникает настоятельная необходимость струк-
турировать информацию, выделять главное и отбрасывать несущественное (повышать
степень абстракции).
Первым шагом к повышению абстракции было
использование функций, позво-
ляющее после написания и отладки функции отвлечься от деталей ее реализации, по-
скольку для вызова функции требуется знать только ее интерфейс. Если глобальные пе-
ременные не используются, интерфейс полностью определяется заголовком функции.
Следующий шаг
- описание собственных типов данных, позволяющих структу-
рировать и группировать информацию, представляя ее в более естественном виде. На-
пример, можно представить с помощью одной структуры все разнородные сведения, от-
носящиеся к одному виду товара на складе.
Для работы с собственными типами данных требуются специальные функции. Ес-
тественно сгруппировать их с описанием этих типов данных в одном месте программы, а
также по возможности отделить от ее остальных частей. При этом для использования
этих типов и функций не требуется полного знания того, как именно они написаны - не-
обходимы только описания интерфейсов. Таким образом дальнейшим развитием струк-
туризации программы явилось
объединение в модули описаний типов данных и функ-
ций, предназначенных для работы с ними.
Все три описанных выше метода повышения абстракции созданы для упрощения
структуры программы, что позволяет управлять большим объемом информации и, сле-
довательно, успешно отлаживать более сложные проекты. Введение понятия
класса яв-
ляется естественным развитием идей модульности. В классе структуры данных и функ-
ции их обработки объединяются. Класс используется только через его интерфейс - дета-
ли реализации для пользователя класса несущественны.
Класс является типом данных, определяемым программистом. В классе задаются
свойства и поведение какого-либо предмета или процесса в виде полей данных (анало-
гично структуре) и функций для работы с ними. Создаваемый тип данных обладает
практически теми же свойствами, что и стандартные типы.
Существенным свойством класса является то, что детали его реализации скрыты от
пользователей класса за интерфейсом. Интерфейсом класса являются заголовки его ме-
тодов. Таким образом, класс как модель объекта реального мира является черным ящи-
ком, замкнутым по отношению к внешнему миру.
Класс является абстрактным типом данных, определяемым пользователем, и пред-
ставляет собой модель реального объекта в виде данных и функций для работы с ними.
Данные класса называются
полями (по аналогии с полями структуры), а функции
класса -
методами. Поля и методы называются элементами класса. В общем случае,
описание класса представляется в следующей форме:
class <имя><:базовый список>
{
[ private: ]
<описание скрытых элементов>
protected:
<описание защищенных элементов>
public:
<описание доступных элементов>
};
81
Глава 3. ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
§ 3.1. Классы и объекты
С увеличением размера программы удерживать в памяти архитектуру и детали
проекта становиться довольно сложно. Возникает настоятельная необходимость струк-
турировать информацию, выделять главное и отбрасывать несущественное (повышать
степень абстракции).
Первым шагом к повышению абстракции было использование функций, позво-
ляющее после написания и отладки функции отвлечься от деталей ее реализации, по-
скольку для вызова функции требуется знать только ее интерфейс. Если глобальные пе-
ременные не используются, интерфейс полностью определяется заголовком функции.
Следующий шаг - описание собственных типов данных, позволяющих структу-
рировать и группировать информацию, представляя ее в более естественном виде. На-
пример, можно представить с помощью одной структуры все разнородные сведения, от-
носящиеся к одному виду товара на складе.
Для работы с собственными типами данных требуются специальные функции. Ес-
тественно сгруппировать их с описанием этих типов данных в одном месте программы, а
также по возможности отделить от ее остальных частей. При этом для использования
этих типов и функций не требуется полного знания того, как именно они написаны - не-
обходимы только описания интерфейсов. Таким образом дальнейшим развитием струк-
туризации программы явилось объединение в модули описаний типов данных и функ-
ций, предназначенных для работы с ними.
Все три описанных выше метода повышения абстракции созданы для упрощения
структуры программы, что позволяет управлять большим объемом информации и, сле-
довательно, успешно отлаживать более сложные проекты. Введение понятия класса яв-
ляется естественным развитием идей модульности. В классе структуры данных и функ-
ции их обработки объединяются. Класс используется только через его интерфейс - дета-
ли реализации для пользователя класса несущественны.
Класс является типом данных, определяемым программистом. В классе задаются
свойства и поведение какого-либо предмета или процесса в виде полей данных (анало-
гично структуре) и функций для работы с ними. Создаваемый тип данных обладает
практически теми же свойствами, что и стандартные типы.
Существенным свойством класса является то, что детали его реализации скрыты от
пользователей класса за интерфейсом. Интерфейсом класса являются заголовки его ме-
тодов. Таким образом, класс как модель объекта реального мира является черным ящи-
ком, замкнутым по отношению к внешнему миру.
Класс является абстрактным типом данных, определяемым пользователем, и пред-
ставляет собой модель реального объекта в виде данных и функций для работы с ними.
Данные класса называются полями (по аналогии с полями структуры), а функции
класса - методами. Поля и методы называются элементами класса. В общем случае,
описание класса представляется в следующей форме:
class <имя><:базовый список>
{
[ private: ]
<описание скрытых элементов>
protected:
<описание защищенных элементов>
public:
<описание доступных элементов>
};
81
Страницы
- « первая
- ‹ предыдущая
- …
- 79
- 80
- 81
- 82
- 83
- …
- следующая ›
- последняя »
