Abychom pochopili objektový jazyk, musíme přesněji vysvětlit, co znamená slovo
"objekt". V předchozích kapitolách jste se již s pojmem
objekt několikrát setkali:
- Nejprve jste ve stromu
Pma objektů vytvářeli
Pma objekty (
"BoilerPlant",
"Boiler1",
"Data",
"Panel", atd.)
- Dále jste v objektu "Data" (typu
PmaData) vytvářeli proměnné
"Power",
"Temperature" a
"Status" (toto jsou objekty typu
PmVar)
Pojem
objekt lze definovat různými způsoby. Pro další výklad použijeme jednoduchý příklad.
Názorně si vše vysvětlíme pomocí objektu, který představuje imaginární
okno v
OS Windows (tento objekt je tedy vymyšlen a slouží nám pouze pro vysvětlení).
V následujících příkladech budeme proměnnou, ve které je uložena reference na tento objekt, označovat
oWindow.
1) Objekt má VLASTNOSTI
Objekt "okno" může mít například následující vlastnosti:
- X .. X-ová pozice levého horního rohu
- Dy .. velikost okna ve směru Y
- BackgroundColor .. barva pozadí, atd.
Každá vlastnost má svůj název (
X,
Dy,
BackgroundColor) a svou hodnotu.
S vlastnostmi lze provádět dvě základní operace:
1) Lze zjistit hodnotu vlastnosti (říkáme, že vlastnost můžeme číst):
JavaScriptVBScriptVyber a zkopíruj do schránky
var nDy = oWindow.Dy;
Dim nDy
nDy = oWindow.Dy
2) Lze nastavit hodnotu vlastnosti (říkáme, že do vlastnosti můžeme zapisovat):
JavaScriptVBScriptVyber a zkopíruj do schránky
oWindow.Dy = 1024;
oWindow.Dy = 1024
Poznámka: Předchozí ukázky (stejně jako následující) jsou jen schématické a budou vysvětleny dále. Důležité je si zapamatovat, že je vždy potřeba uvést objekt i název vlastnosti a tyto dva pojmy se oddělují tečkou.
Některé vlastnosti mohou být určeny
pro čtení i zápis, některé vlastnosti mohou být určeny
jen pro čtení.
2) Objekt má METODY
Objekt "okno" může mít například následující metody:
- Print .. vytisknutí obsahu okna na tiskárnu
- SaveToFile .. uložení obsahu okna do souboru typu .jpg nebo .png.
S metodama lze provádět jen jednu akci:
metodu můžeme volat. Voláním metody se provede příslušná operace, například tisk na tiskárnu.
Metoda
může vracet hodnotu. Například často vrací příznak, jak operace dopadla, může vracet výsledek nějakého složitého výpočtu, atd.
Metoda může mít
parametry (a obvykle má), které blíže určují, jak se má operace provést. Například u metody
SaveToFile lze parametrem říct, do kterého souboru se má obsah uložit.
Příklady volání metod:
JavaScriptVBScriptVyber a zkopíruj do schránky
var Result;
// Pokud metoda nemá parametry:
oWindow.Print();
// Nezajímá nás vrácená hodnota
Result = oWindow.Print();
// Zajímá nás vrácená hodnota
// Pokud metoda má parametry:
oWindow.SaveToFile("C:\\Data\\Picture.jpg");
// Nezajímá nás vrácená hodnota
Result = oWindow.SaveToFile("C:\\Data\\Picture.jpg");
// Zajímá nás vrácená hodnota
Dim Result
' Pokud metoda nemá parametry:
oWindow.Print
' Nezajímá nás vrácená hodnota
Result = oWindow.Print()
' Zajímá nás vrácená hodnota
' Pokud metoda má parametry:
oWindow.SaveToFile "C:\Data\Picture.jpg"
' Nezajímá nás vrácená hodnota
Result = oWindow.SaveToFile("C:\Data\Picture.jpg")
' Zajímá nás vrácená hodnota
' To znamená, že pokud nás nezajímá vrácená hodnota, pak nepíší se parametry do závorek ale mezi názvem metody a parametry je vložena mezera.
3) Objekt má UDÁLOSTI
Objekt "okno" může mít například následující události:
- onOpen .. nastalo otevření okna
- onClose .. nastalo zavření okna
- onMouseClick .. na okně bylo kliknuto myší
Pomocí vlastností a metod můžete provádět nad objektem operace. Událost však plní právě opačnou funkci –
objekt vám svou událostí sám říká, že se něco stalo. Událost se nečte, nezapisuje ani nevolá –
událost je vyvolána.
Událost může mít také
parametry. Tyto parametry však nezadáváte (jako v případě vlastností a metod), ale těmito parametry vám objekt sám blíže určuje, co se mu stalo. Například v případě události
onMouseClick by v parametrech události mohla být informace, zda nastalo kliknutí levým nebo pravým tlačítkem myši.
Každé události může být přiřazen skript tak, že pokud tato událost nastane, pak se příslušný skript provede. V systému PROMOTIC je
každý skript přiřazen nějaké události, jedná se o tzv.
událostní programování.