Utwórz obiekt (konstruktor synchroniczny)

(newobject)
newobject [instrukcje]
(newobject [instrukcje] wyrażenie1 wyrażenie2 ...)
newobject funkcja
(newobject funkcja wyrażenie1 wyrażenie2 ...)

(newo)
newo [instrukcje]
(newo [instrukcje] wyrażenie1 wyrażenie2 ...)
newo funkcja
(newo funkcja wyrażenie1 wyrażenie2 ...)

Tworzy nowy obiekt. Lista instrukcji lub funkcja podane jako argument są wykonywane jako konstruktor nowego obiektu. Obiekt/żółw wywołujący instrukcję newobject czeka na zakończenie wykonania konstruktora. Argumenty konstruktora mogą być podane jako opcjonalne wyrażenia.

Obiekt w POOL jest uproszczoną wersją żółwia. Obiekty nie posiadają reprezentcji graficznej i nie mogą obsługiwać zdarzeń związanych z grafiką (np. kliknięć myszy). Dzięki temu obiekty zajmują mniej pamięci, są szybciej tworzone i szybciej wykonują polecenia.

Przykład 1:

"t := (newo)
print who
print children
print parent @ :t
print who @ :t

Rezultat wykonania:

first
[o1]
first
o1

Przykład 2:

"t := newo [
  "x := 10
  print who
]
print :x @ :t

Rezultat wykonania:

o1
10

Przykład 3:

to model :x
  to fn
    op :zmienna^2
  end
  let "zmienna :x
  (print who :x)
end

"t := (newo $model 5)
print fn @ :t

Rezultat wykonania:

model1 5
25

Zobacz także:

Żółw - obiekt
Synchronizacja wielu obiektów

Spis treści