Рис. 6. Диаграмма классов для "генеалогического древа" бытовой техники.
19
Рис. 7. Диаграмма классов образовательного учреждения
20
Тема «Создание объектов на основе классов. Объекты и композиция»
Центральными в ООП являются понятия класса и объекта. Образно говоря, ООП заключается не столько в использовании классов и объектов в программе, сколько в замене принципа программирования "от функции к функции" принципом программирования "от класса к классу".
Технология ООП прежде всего накладывает ограничения на способы представления данных в программе. Любая программа отражает в них состояние физических предметов либо абстрактных понятий (назовем их объектами программирования), для работы с которыми она предназначена. В традиционной технологии варианты представления данных могут быть разными. В худшем случае программист может "равномерно размазать" данные о некотором объекте программирования по всей программе. В противоположность этому все данные об объекте программирования и его связях с другими объектами можно объединить в одну структурированную переменную. В первом приближении ее можно назвать объектом. Кроме того, с объектом связывается набор действий, иначе называемых методами.
точки зрения языка программирования это функции, получающие в качестве обязательного параметра указатель на объект. Технология ООП запрещает работать с объектом иначе, чем через методы, то есть внутренняя структура объекта скрыта от внешнего пользователя. Описание множества однотипных объектов называется классом.
Объект - структурированная переменная, содержащая всю информацию о некотором физическом предмете или реализуемом в программе понятии.
Класс - описание множества таких объектов и выполняемых над ними действий.
Это определение можно проиллюстрировать средствами классического
Си:
struct myclass
{
int data1;
...
};
void method1(struct myclass *this,...)
{ ... this->data1 ... }
void method2(struct myclass *this,...)
{ ... this->data1 ... } struct myclass obj1, obj2;
... method1(&obj1,...); ... method2(&obj2,...);
21
синтаксисе классического Си зафиксирован перечень базовых типов данных и операций над ними. Переменные производных типов данных, в том числе и структуры, могут обрабатываться только с использованием выражений (функций).В Си++ класс обладает синтаксическими свойствами базового типа данных:
- класс определяется как структурированный тип данных (struct); - объекты определяются как переменные класса;
- возможно переопределение и использование стандартных операций языка, имеющих в качестве операндов объекты класса, в виде особых методов в этом классе.
struct matrix
{
определение структурированного типа matrix и методов,
реализующих операции matrix * matrix, matrix * double
}
matrix a,b; // Определение переменных и
double dd; // объектов класса matrix
a = a * b; // Использование переопределенных b = b * dd * 5.0; // операций
Класс - определенный программистом базовый тип данных.
Объект - переменная класса.
Под классами понимают некоторую абстрактную сущность, заданную набором имен атрибутов и имен методов поведения. Но класс не имеет никакого конкретного состояния, т.к. его атрибуты не имеют значений. Объект точка - это не есть конкретная точка на экране дисплея, но каждый пиксель можно рассматривать как экземпляр этого объекта. В некоторых задачах принципиально подчеркнут характер отношений между объектом и его экземплярами. Примерами таких отношений являются:
а) объект не может иметь экземпляров (имеет 0 экземпляров)
б) объект может иметь только один экземпляр в рамках данной задачи в) объект может иметь много экземпляров
Примером отношений являются:
а) объект млекопитающее не может иметь экземпляров, т.к. любое реальное млекопитающее является экземпляром объекта-потомка от млекопитающего.
б) объект "президент России" может иметь только один экземпляр в течение некоторого периода времени.
в) объект ястреб - тетеревятник имеет множество экземпляров. Возможность контроля допустимого количества экземпляров объекта
увеличивает надежность системы за счет исключения ошибок при создании недопустимых экземпляров.
Классы могут быть композицией объектов других классов.
22
Объекты-элементы создаются в том порядке, в котором они объявлены, и до того, как будут созданы объекты включающего их класса.
Do'stlaringiz bilan baham: |