Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MODEL.DOC
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
348 Кб
Скачать
☆

1.6Понятие объекта в языке Симула-67

2.1.1 Объекты и классы объектов

В языке Симула - 67 ( точнее, в Симула - 1, 1960 год ) впервые было введено такое понятие как объект и поэтому его справедливо можно считать первой системой объектно - ориентированного программиро­вания. Объект - это программный компонент, обладающий атрибутами и способный выполнять опреде­ленные действия. Атрибутами могут быть переменные, массивы, процедуры, ссылки на другие объекты. Действия, выполняемые объектом, задаются последовательностью операторов, называемой сценарием его функционирования, поведения или правилами действий. Симула-объекты являются удобным средством для отображения существующих или проектируемых объектов реальности, а также абстрактных поня­тий. Каждый объект обладает системным атрибутом, указывающим на исполняемый оператор его правил действий. Этот атрибут называется локальным управлением (ЛУ).

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

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

Рассмотрим строение декларации класса на примере описания автобусов, различающихся своими параметрами :

| class АВТОБУС (P,L,B,H,N,T,S);

(1) | имя класса формальные параметры

| real Р , L , В , Н , Т , S ; integer N ; - спецификации параметров

(2) | begin real ПУТЬ;

| procedure ТЕХОСМОТР;…;

| procedure СТОП (V);real V;...;

| . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |

| if ПУТЬ >=10000 then ТЕХОСМОТР;. | (3)

| . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |

| if КРАСНЫЙ then СТОП (60); |

| . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |

| end ( декларации класса автобус ) .

Здесь (1) - заголовок декларации класса, в котором формальные параметры P,..,S трактуются как вес, длина, ширина, высота, пассажировместимость рейсового автобуса, срок его эксплуатации, длина мар­шрута соответственно, (2) - тело декларации класса. (3) - описание сценария поведения автобуса. В роли формальных параметров деклараций классов могут использоваться переменные и массивы.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]