Главная
Дисциплины (2009-2010)
Дисциплины (2010-2011)
Разное
Популярные

Объектно-ориентированное программирование и проектирование.

Использование ООМ (объектно-ориентированной методологии) для создания сложных программных систем подразумевает наличие базовых блоков в виде классов и объектов. Объект обладает состоянием, поведением и индивидуальностью. Структура и поведение сложных объектов определяет общий для них класс. Термины «экземпляр класса» и «объект» взаимозаменяемы.

Состояние объекта.

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

Поведение объекта.

Объекты не существуют изолированно, а подвергаются воздействию или сами воздействует на другие объекты. Поведение характеризует то, как объект воздействует или подвергается воздействию других объектов с точки зрения изменения состояния этих объектов и передачей сообщений. Другими словами, поведение объекта полностью определяется его действиями.
Как правило, в объектных и объектно-ориентированных языках (ООЯ) операции, выполняемые над данным объектом, называются методами (методической частью объекта) и входят составной частью в определение класса. Из практики известно пять основных видов операций над объектами:
1). Модификатор - операция, которая изменяет состояние объекта путем записи или доступа.
2). Селектор - операция, дающая доступ для определения состояния объекта без его изменения (операция чтения).
3). Итератор - операция доступа к содержанию объекта по частям (в определенной последовательности).
4). Конструктор - операция создания и (или) инициализация объекта.
5). Деструктор - операция разрушения объекта и (или) освобождение занимаемой им памяти.

Конструктор.

Формат определения конструктора в теле класса Си++ может быть таким:

имя_класса(список_формальных_параметров)
{ операторы тела конструктора };

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

Node (int c, char *s):
code(c), str(s) { }
Деструктор.

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

~имя_класса()
{ операторы тела деструктора };

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


Последнее обновление:
Copyright (C) 2009-2011 by RA0LHS
Hosted by uCoz