modsim obiekty id 305582 Nieznany

background image

J

Ę

ZYK SYMULACYJNY MODSIM

programowanie zorientowane

obiektowo

Metody symulacyjne

1

obiektowo

background image

Zagadnienia

• Definicja i własności obiektów.

• Deklaracja i definicja typu obiektowego.

• Instancja obiektu a typ obiektowy.

2

• Instancja obiektu a typ obiektowy.

• Pola i metody.

• Dziedziczenie.

• Prototypowanie obiektów.

background image

Obiekt

w języku MODSIM jest dynamicznie

powoływaną i usuwaną strukturą danych ściśle
powiązaną z pewnymi operacjami zwanymi tu
metodami.

Definicja i własności obiektu.

3

metodami.

background image

•hermetyzacja (ang. encapsulation)

•dziedziczenie

Własności:

Definicja i własności obiektu cd.

4

•dziedziczenie

•polimorfizm

•przesyłanie komunikatów

•hierarchizacja typów

background image

Deklaracja i definicja typu obiektowego (klasy).

• Na definicję klasy składają się dwa bloki

programowe:

– blok deklaracji składowych klasy i opcjonalnie listy

dziedziczenia

– blok definicji metod klasy (wszystkich zadeklarowanych

5

Syntaktyka bloku deklaracji typu

– blok definicji metod klasy (wszystkich zadeklarowanych

wyżej)

background image

Deklaracja i definicja typu obiektowego (klasy).

6

background image

Przykład deklaracji typu obiektowego.

TYPE

LiczbaZespolonaObj = OBJECT

czescRzeczyw

: REAL;

czescUrojona

: REAL;

Deklaracja i definicja typu obiektowego (klasy).

7

ASK METHOD ustawWartosc(IN r, i : REAL);

ASK METHOD dodaj(IN a, b : complexNbrObj);

END OBJECT;

VAR x, y, z : LiczbaZespolonaObj;

background image

Deklaracja i definicja typu obiektowego (klasy).

8

background image

Przykład bloku definicji obiektu.

OBJECT LiczbaZespolonaObj;

ASK METHOD ustawWartosc(IN r, i : REAL);

BEGIN

czescRzeczyw := r;

czescUrojona := i;

END METHOD;

Deklaracja i definicja typu obiektowego (klasy).

9

END METHOD;

ASK METHOD dodaj(IN a, b : LiczbaZespolonaObj);

BEGIN

{kod dodawania}

END METHOD;

END OBJECT;

background image

FORWARD

– stanowi „zapowied

ź

” pełnej definicji typu lub procedury w

dalszej cz

ęś

ci modułu umo

ż

liwiaj

ą

c wcze

ś

niejsze wykorzystanie

zapowiadanego elementu przy definicji innego

PROCEDURE Proc1(IN a, b : REAL; OUT c : REAL); FORWARD;
CarObj = OBJECT; FORWARD;
...

Kwalifikator FORWARD

Deklaracja i definicja typu obiektowego (klasy).

10

...
PROCEDURE Proc1(IN a, b : REAL; OUT c : REAL);
BEGIN

... {kod procedury}

END PROCEDURE;

CarObj=OBJECT;

...

END OBJECT;

background image

Różnice między metodami a procedurami

• Metoda jest przywi

ą

zana do obiektu i mo

ż

e by

ć

wywołana

jedynie poprzez wysłanie komunikatu do tego obiektu z

żą

daniem wykonania okre

ś

lonej metody.

• W przeciwie

ń

stwie do procedur, mo

ż

e istnie

ć

wiele metod o

Pola i metody.

11

• W przeciwie

ń

stwie do procedur, mo

ż

e istnie

ć

wiele metod o

tej samej nazwie, przy czym ka

ż

da z nich mo

ż

e mie

ć

ż

ny

kod (działanie) oraz list

ę

parametrów.

• Niektóre metody (i tylko metody) mog

ą

powodowa

ć

upływ

czas symulacyjnego (TELL i WAITFOR).

background image

Pola i metody cd.

• Metody typu

ASK

• Metody typu

TELL

• Metody typu

WAITFOR

Rodzaje metod:

12

• Metody typu

WAITFOR

background image

ASK

- działanie natychmiastowe, podobne do działania

procedury lub funkcji - nie wytraca czasu symulacji

Deklaracja:

Pola i metody cd.

Rodzaje metod:

13

ASK METHOD nazwaMetody [(lista parametrów formalnych)]
ASK METHOD PodajStan(INOUT stan: REAL);

Wywołanie:

ASK obiekt [TO] nazwaMetody [(lista parametrów aktualnych)]
ASK kasa TO PodajStan(aktualnyStan);

background image

Pola i metody cd.

Rodzaje metod:

TELL

- związana jest z upływem czasu symulacji. W jednej

chwili może być wykonywane kilka metod TELL

Deklaracja:

14

TELL METHOD nazwaMetody [(lista parametrów formalnych)];
TELL METHOD Obsluga(IN czas: REAL);

Wywołanie:

TELL obiekt [TO] nazwaMetody [(lista parametrów aktualnych)]

[IN opó

ź

nienie]

TELL kasa TO Obsluga(5.0) IN 10.0;

background image

Pola i metody cd.

Rodzaje metod:

WAITFOR

- związana jest z upływem czasu symulacji. W

jednej chwili może być wykonywane kilka metod WAITFOR

Deklaracja:

WAITFOR METHOD nazwaMetody [(lista parametrów formalnych)];
WAITFOR METHOD Obsluga(IN czas: REAL;OUT ile: INTEGER);

15

WAITFOR METHOD Obsluga(IN czas: REAL;OUT ile: INTEGER);

Wywołanie (tylko wewnątrz instrukcji upływu czasu

WAIT FOR

):

WAIT FOR obiekt [TO] nazwaMetody [(listaParametrów
Aktualnych)];
END WAITFOR;
WAIT FOR kasa TO Obsluga(5.0, ileKlientow)
END WAIT;

background image

Powoływanie instancji obiektu: ObjInit

Typ obiektu a instancja obiektu.

Niektóre typy obiektów wymagaj

ą

inicjalizacji.

TYPE

movingObj = OBJECT

x, y : REAL;

16

x, y : REAL;

ASK METHOD ObjInit;

ASK METHOD Stop;

END OBJECT;

Je

ś

li obiekt posiada zdefiniowan

ą

metod

ę

ObjInit, wtedy jest ona

automatycznie wywoływana przez procedur

ę

NEW.

background image

Usuwanie instancji obiektu: ObjTerminate

Typ obiektu a instancja obiektu cd.

ObjTerminate jest wykorzystywana do wykonania czynno

ś

ci przed

usuni

ę

ciem samego obiektu.

TYPE

movingObj = OBJECT

x, y : REAL;

17

x, y : REAL;

ASK METHOD ObjInit;

ASK METHOD ObjTerminate;

ASK METHOD Stop;

END OBJECT;

Metoda jest wywoływana automatycznie przez procedur

ę

DISPOSE zanim obiekt zostanie usuni

ę

ty z pami

ę

ci.

background image

Klonowanie obiektów: ObjClone

Do tworzenia kopii instancji obiektu słu

ż

y funkcja

CLONE. W wyniku jej wywołania nast

ę

puje:

• Alokacja pami

ę

ci dla nowej instancji obiektu

• Przepisanie warto

ś

ci pól obiektu klonowanego do

Typ obiektu a instancja obiektu cd.

18

• Przepisanie warto

ś

ci pól obiektu klonowanego do

nowego obiektu

• Wywołanie metody ObjInit dla nowej instancji

• Wywołanie metody ObjClone dla nowej instancji

background image

Przykład klonowania obiektu

Typ obiektu a instancja obiektu cd.

VAR movingObj1, movingObj2 : MovingObj;

BEGIN

NEW(movingObj1);

...

19

...

movingObj2 := CLONE(movingObj1);

DISPOSE(movingObj1);

DISPOSE(movingObj2);

END MODULE;

background image

Zgodność typów obiektów

• Typ1 i Typ2 s

ą

tym samym typem obiektowym

• Typ pochodny w hierarchii dziedziczenia jest zgodny dla

typów b

ę

d

ą

cych jego przodkami

Typ obiektu a instancja obiektu cd.

20

typów b

ę

d

ą

cych jego przodkami

• Typ ANYOBJ jest typem zgodnym ze wszystkimi typami

obiektowymi i na odwrót

background image

Typ obiektowy: ANYOBJ

Typ obiektu a instancja obiektu cd.

PROCEDURE switchObjects(INOUT firstObj : ANYOBJ;

INOUT secondObj : ANYOBJ);

VAR temp : ANYOBJ;

BEGIN

21

BEGIN

temp := firstObj;

firstObj := secondObj;

secondObj := temp;

END PROCEDURE;

background image

Stała referencyjna: SELF

Typ obiektu a instancja obiektu cd.

Jest ona wykorzystywana:



przy odwoływaniu si

ę

obiektu do własnych pól i metod

(czytelno

ść

kodu)

TELL

SELF

TO move(IN x : REAL; IN y : REAL);

22



przy identyfikacji obiektu przez inny obiekt:

ASK METHOD airTrafficController;

BEGIN

distance := ASK movingObj TO reportDistance(

SELF

);

END METHOD;

background image

Pola i metody cd.

Do pól obiektu mo

ż

na odwoływa

ć

si

ę

na trzy sposoby:

• speedValue :=

ASK

movingObject [

TO

] speed;

• speedValue := movingObject

.

speed;

Odwoływanie się do pól obiektu

23

• speedValue := movingObject

.

speed;

• speedValue := speed;

background image

Pola i metody cd.

Wywołanie metody nast

ę

puje poprzez wysłanie do obiektu

komunikatu

np.:

ASK

someObject [

TO

]

Wywoływanie metod obiektu

24

ASK

someObject [

TO

]

doSomething[(lista parametrów)];

background image

Dziedziczenie.

25

Istota dziedziczenia pojedynczego.

background image

Dziedziczenie cd.

26

Istota dziedziczenia wielokrotnego.

background image

Prototypowanie obiektów.

BObj = OBJECT;

...

END OBJECT;

ListaAObj = PROTO;

field : #BObj;

ASK METHOD doSomething(IN a : #BObj) : #BObj;

END PROTO;

27

END PROTO;

DObj = OBJECT(BObj);

...

END OBJECT;

ListaCObj = OBJECT(ListaAObj[BObj : DObj]);

...

END OBJECT;

Uwaga: DObj musi by

ć

typem pochodnym od BObj.


Wyszukiwarka

Podobne podstrony:
obiektowosc id 327106 Nieznany
Ident obiekt h(t) id 209280 Nieznany
modsim skladnia id 305585 Nieznany
Abolicja podatkowa id 50334 Nieznany (2)
4 LIDER MENEDZER id 37733 Nieznany (2)
katechezy MB id 233498 Nieznany
metro sciaga id 296943 Nieznany
perf id 354744 Nieznany
interbase id 92028 Nieznany
Mbaku id 289860 Nieznany
Probiotyki antybiotyki id 66316 Nieznany
miedziowanie cz 2 id 113259 Nieznany
LTC1729 id 273494 Nieznany
D11B7AOver0400 id 130434 Nieznany
analiza ryzyka bio id 61320 Nieznany
pedagogika ogolna id 353595 Nieznany
Misc3 id 302777 Nieznany

więcej podobnych podstron