Абстрагирование и классы. Защита данных
На основе абстрагирования решение какой-либо проблемы выражается в понятиях представления информации, в терминах её преобразований и взаимодействие с ней разработчика программной системы. В результате создаётся абстрактные представления самых важных операционных особенностей проблемы, выделяются операционные термины (имена операций), необходимые для решения проблемы и решение отдельных задач формулируется на основе этих операций.
От абстракции к реализации всего один шаг. В С++ описание класса обеспечивает формирование интерфейса, содержащего операционные термины – имена операций с параметры. Реализация класса определяет решение задачи.
Описание классов, а также применение принципа абстрагирования выполнимы на основе следующего примера, приведённого в книге Стивена Прата: «Язык программирования С++. Лекции и упражнения». Определяемый класс, представляет пакет акций. Перечень операций, которые необходимо реализовать включает:
- получение пакета в компании
- приобретение дополнительных акций того де пакета
- продажа пакета
- корректировка средней стоимости одной акции пакета
- отображение данных о пакете акций
Для поддержки этого интерфейса необходимо хранить некоторые виды информации:
- наименование компании
- число акций в пакете
- цена каждой акции
- общая стоимость всех акций и пакета
class Stock // объявление класса, представляющего пакет акций
{
private:
char company[30];//имя компании
int shares;//число акций
double share_val;//стоимость одной
double total_val;//стоимость пакета
void set_tot()
{total_val = shares* share_val;}
public:
void acquire(const char* co, int n, double pr);//приобретение пакета
void buy(int num, double price);//приобретение дополнительных акций
void sell(int num, double price);//продажа
void update(double price);//корректировать стоимость
void show();//данные о пакете
};
Подробная спецификация делается либо в .h – файлах, либо в .cpp – файлах.
Обычно предпочитают .h – файлы. Реализация функций или методов классов обычно всегда выполняется в .cpp – файлах.
Ключевые слова – private и public описывают управление доступом. Так, public – указывает, что доступ к операциям или данным возможен из любой точки программы, а private – только из других методов (функций) этого же класса.
Это объявление класса позволяет объявлять в программе переменные, именуемые объектами или экземплярами класса Stock:
Stock sally, solly;
Создаются два объекта типа Stock.
Переменные и методы в разделе public класса определяют интерфейс класса.
Защита данных поддерживается тем, что данные защищены от прямого доступа к ним. К ним обращаются через операции интерфейса. Принцип инкапсуляции состоит в том, что реализаци отделена от интерфейса. Так какие-либо изменения в приватной части класса или в декларациях public – методов, при условии сохранения имён функций интерфейса и типов их параметров не приведёт к переделкам той части программы где используются объекты этого класса.
Дата добавления: 2016-05-26; просмотров: 1748;