Objekt och klasser

I ActionScript 3.0 definieras alla objekt av en klass. En klass kan betraktas som en mall eller en plan för en typ av objekt. Klassdefinitioner kan innehålla variabler och konstanter som innehåller datavärden, samt metoder, som är funktioner som sammanfattar beteenden som kopplas till klassen. De värden som lagras i egenskaper kan vara primitiva värden eller andra objekt. Primitiva värden är nummer, strängar eller booleska värden.

ActionScript innehåller ett antal inbyggda klasser som är en del av huvudspråket. Vissa av dessa inbyggda klasser, till exempel Number, Boolean och String, representerar primitiva värden som finns i ActionScript. Andra, som klasserna Array, Math och XML, definierar mer komplexa objekt.

Alla klasser, vare sig de är inbyggda eller användardefinierade, härstammar från klassen Object. Programmerare med tidigare erfarenhet av ActionScript bör känna till att datatypen Object inte längre är standardtyp, även om alla andra klasser fortfarande härstammar från den. I ActionScript 2.0 var följande två kodrader likvärdiga eftersom saknaden av typanteckning betydde att en variabel kunde vara av typen Object:

var someObj:Object; 
var someObj;

ActionScript 3.0 introducerar emellertid begreppet typlösa variabler, som kan anges på följande två sätt:

var someObj:*; 
var someObj;

En typlös variabel är inte detsamma som en variabel av typen Object. Huvudskillnaden är att typlösa variabler kan innehålla det speciella värdet undefined, medan en variabel av typen Objekt inte kan innehålla detta värde.

Du kan definiera egna klasser med hjälp av nyckelordet class. Du kan deklarera klassegenskaper på tre olika sätt: konstanter kan definieras med nyckelordet const, variabler definieras med nyckelordet var och get- och set-egenskaper definieras med attributen get och set i en metoddeklaration. Du kan deklarera metoder med nyckelordet function.

Du kan skapa en instans av en klass med operatorn new. I följande exempel skapas en instans av klassen Date som får namnet myBirthday.

var myBirthday:Date = new Date();