Конспект установочных лекций по комплексному курсу Информатика, Теория информации



Объектно-ориентированное программирование - часть 9


message,

data -> message,

data ->• message,

message,

data -> message,

message,

put_empty:

padd:

pdelete:

sisempty:

siselem:

sany:

data bool

Output Channel Messages:

message, message,

data:

bool:

Axioms:

(см. табл.11.1) end_of_class

Поведение объекта класса задано таблицей переходов состояний. Здесь речь идет о примере класса 00-языка программирования с параллельной моделью

выполнения.

 

                       Таблица 11.1. Таблица переходов состояний для класса

Ввод

Состояние ввода

Вывод

Следующее состояние

Putempty

S

Empty

Padd(d)

S

add(s, d)

Pdelcte(d)

S

delete(s, d)

Sisempty

S

bool(isempty(s))

S

Siselem(d)

S

bool(iselem(s))

S

Sany

S

data(any(s))

S

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

Формализация этого обращения с классами и объектами возможна с помощью явного представления ссылок и создания объектов. Это ведет к понятию состояния по аналогии с состоянием памяти

Пример (классы с созданием объектов). Приведем типичный пример класса с созданием объекта:

class QUEUE_CLASS = Based on: QUEUE

Attributes: d : data, b : bool, s : Pointer to QUEUE_CLASS,

Methods:   put_empty,

padd    param data, pdeq

Selectors:   qisempty: -> bool, qnext:    -»data

Axioms:    put_empty = [b := true ],

padd(x) = [if b      then       d := x;

b := false;

create(s);

s.put_empty(s) else       s.padd(x) fi], pdeq =   [if qisempty(s)  then    b :== true

else    d :== qnext(s); s.pdeq(s) fi], qisempty = b, qnext = d

end_of_class

Концепция наследования касается таких составных частей класса, как:




Содержание  Назад  Вперед