Objektově orientované programování v ActionScriptu.
Objektově orientované programování (OOP)
Co si pod tím představit? OOP je způsob programování, který vychází z toho, že je svět kolem nás tvořen jednotlivými objekty (dveře, televize, strom). Každý objekt má své vlastnosti nabývající různých hodnot – výšku, barvu, nebo taky třeba kvalitu.
Objekty
Objekt si můžete představit jako krabici, která obsahuje různá data – proměnné a funkce, které označujeme jako vlastnosti a metody.
V ActionScriptu si vytvoříte objekt mimo jiné tímto způsobem:
new Object();
Tento kód se skládá ze dvou částí: operátoru new a jména třídy. Ta druhá část nás zatím nemusí zajímat, místo ní budeme používat ješte mnoho jiných. Po vykonání se ale vše ztratí, proto vytvořený objekt musíme uložit do nějaké proměnné.
muj_vlastni_objekt = new Object();
Nyní máme v proměnné muj_vlastni_objekt uložený objekt. Teď vás možná napadne, jakého typu vlastně je (číslo, řetězec, …). Ani jedno z toho, proměnná, která uchovává objekt má typ Object.
K datům přistupujeme pomocí operátoru .. Dejme tomu, že chceme našemu objektu přiřadit vlastnost (proměnnou) promena:
muj_vlastni_objekt = new Object();
muj_vlastni_objekt.promena = 12;
trace(muj_vlastni_objekt.promena); //vypíše 12
Teď jsme do pomyslné krabice muj_vlastni_objekt přidali proměnnou promenna s hodnoutou 12.
Ale co metody (funkce)? Z minulých dílů si pomatujete, že funkci definujeme příkazem function a pokud chceme přiřadit funkci objektu, musí být uložená v proměnné. Odpovědí je anonymní funkce:
muj_vlastni_objekt = new Object();
muj_vlastni_objekt.promena = 12;
muj_vlastni_objekt.funkce = function(){
trace("Zrovna probíhá funkce uvnitř objektu ");
trace("Stále probíhá...");
}
muj_vlastni_objekt.funkce();
trace("Už neprobíhá.");
/* Vypíše
Zrovna probíhá funkce uvnitř objektu
Stále probíhá...
Už neprobíhá
*/
Samotná definice anonymní funkce probíhá za známenkem =, uloží se do proměnné funkce a poté s ní pracujeme jako s klasickou funkcí.
Příště…
V dnešním díle jsme si ukázali naprosté základy OOP. Příště se budeme věnovat dalším, užitečnějším kapitolám objektového programování.