kolmapäev, 23. september 2009

Ülesanne: Objekt-orienteeritud elukas

Ülesanne: Kirjelda klass Eluka joonistamiseks. Loo selle klassi abil kolm erinevat objekti ja pane nad erinevalt liikuma.

Objekt-orienteeritud programmeerimine

Objekt-orienteeritud programmeerimine on mõtteviis, mis näeb programmi kui erinevate objektide vahelist suhtlust. Kui funktsioon kapseldab endas mingi tegevuse, siis objekt kapseldab endas nii tegevused kui andmed.

Objekte kirjeldavad klassid. Teeme näite loomariigist: olgu meil klass Koer ja objekt sellest klassist - Muki.

Klass kirjeldab, millised omadused on igal sellesse klassi kuuluval objektil ja milliseid tegevusi selle klassi objektid oskavad.
  • Klass Koer.
  • Omadused - värvus, vanus, kaal
  • Tegevused - haugu, sitsi, istu, hammusta 
Objekt annab omadustele konkreetsed väärtused, millest lähtudes ka tegevusi sooritatakse. Näiteks Muri on must, kolme aastane ja kaalub 5 kilo. Haugub kõvasti, sitsib vapralt, istub hästi ja hammustab natuke.

Klasside kirjeldamine ActionScriptis

 Klassi kirjeldamiseks tuleb kirjeldada eraldi failis klassi nimi, muutujad (omadused) ja funktsioonid (tegevused).

// Klassi nimi 
public class Koer
{

    // Klassi andmed 
    var color:int;
    var age:int;
    var weight:int;

    // Klassi konstruktor 
    public function Koer(cc:int, aa:int, ww:int)
    {
        color = cc;
        age = aa;
        weight = ww; 
    } 

    // Üks funktsioonidest 
    public function haugu(isend):void
    {
        ... 
    } 


NB! Klass tuleb salvestada faili KlassiNimi.as. Iga klass peab kuuluma teeki (package). Antud juhul paneme ta nimetusse teeki ja lepime hetkel sellega:

package
{
public class Koer
{

}

Klassist endast pole meile palju rõõmu. Klassi saame kasutada läbi objektide. Objektide loomine käib samamoodi nagu tavaliste muutujate loomine, mõne väikese erandiga.

var muri:koer = new Koer(0x000000, 3, 15);
var muki:koer = new Koer(0x000000, 1, 5);

Kõik on tore ja tuttav aga
  • new - selle võtmesõnaga öeldakse, et loome uue objekti järgnevast klassist
  • Koer(...) - konstruktor. See on eriline funktsioon, mis kutsutakse välja objekti loomisel ja mille abil objekt algväärtustatakse.  
 Nüüd saame juba rahus edasi programmeerida.

muri.istu();
muki.sitsi();
muri.haugu(kass);
muki.haugu(kass);

Loe ka artiklit "Object-oriented programming in ActionScript"

Kommentaare ei ole:

Postita kommentaar