2. Rychlý úvod - Flash a OOP - teorie

V tomto článku se seznámíme se základy objektově orientovaného programování v AS3. Předpokládám, že již znáte základní koncepty OOP (OOP na Wikipedii).

Teorie

AS3 je objektově orientovaný jazyk a každá proměnná je nějakého typu / třídy a má s ní spojené vlastnosti a metody.
Ve flashi je zvykem definici každé třídy psát do zvláštního souboru. Každá třída je uvnitř nějakého package (balíček), které také definuje jmenný prostor, ve kterém je třída umístěna.
Základním typem je Object, ze kterého dědí všechny třídy. Pokud předka nespecifikujeme, předpokládá se, že je to právě Object.
Každá metoda je virtuální, můžeme ji tedy v potomcích přepsat.

Parametry třídy a její položek

  • public - veřejná položka, dostupná všem
  • private - soukromá, dostupná pouze z dané třídy
  • protected - private + přístupná pro podtřídy
  • internal - dostupná v rámci daného jmenného prostoru
  • static - statická položka, patří třídě, nezávislá na instancích
  • override - nahrazuje danou metodu předka

Ukázka OOP v AS3

První třída

package fauna // jmenný prostor "fauna"
{
   //import flash.display.MovieClip;  // -import dalších tříd
 
   public class Zvíře // definice třídy
   {
      public var hmotnost:int = 10; // proměnná a poč. hodnota
      public var jmeno:String;
 
      public function Zvíře(/*parametry*/) :void // konstruktor třídy
      {
      }
 
      public function OzviSe() :String // veřejná metoda
      {
         return("Ahoj, jsem " + jmeno + " a vážím " + hmotnost + "kg!");
      }
   }
}

Rozšíříme třídu

package fauna
{
   import fauna.Zvíře;
 
   public class Pes extends Zvíře
   {
      public var kouše:Boolean;
      public var plemeno:String;

      public function Pes() :void 
      {
      }
 
      public override function OzviSe() :String
      {
         var hláška:String = "Ahoj, jsem pes " + jméno + " a ";
         hláška += kouše?"koušu!":"nekoušu!";
         return(hláška);
      }
   }
}

Použití tříd

var prase:Zvíře = new Zvíře();
prase.jméno = "Čuník";
prase.hmotnost = 100;

var alík:Pes = new Pes();
alík.jméno = "Alík";
alík.hmotnost = 15;
alík.kouše = true;
trace(alík.OzviSe());
// vypíše "Ahoj, jsem pes Alík a koušu!"

Zdrojové soubory

1 komentářů:

  1. Anonymní ... (6. ledna 2011 v 4:55)

    Ahoj,
    hodilo by sa niečo o sprave pamati, poliach a vektoroch a nejake vychytavky, Tweeber, GTween...

    Inak super clanky.
    Karmil

Okomentovat