Objekte und Klassen

In ActionScript 3.0 wird jedes Objekt durch eine Klasse definiert. Eine Klasse kann man sich als Vorlage oder Entwurf für den Typ eines Objekts vorstellen. Klassendefinitionen können Variable und Konstanten enthalten, in denen Datenwerte gespeichert sind, und Methoden, in denen das an die Klasse gebundene Verhalten eingekapselt ist. Bei den in den Eigenschaften gespeicherten Werten kann es sich um Grundwerte (Englisch „primitive values“) oder um andere Objekte handeln. Grundwerte sind Zahlen, Strings oder boolesche Werte.

ActionScript enthält verschiedene integrierte Klassen, die einen Teil der Hauptsprache darstellen. Einige dieser integrierten Klassen, z. B. Number, Boolean und String, stellen die in ActionScript verfügbaren Grundwerte dar. Andere Klassen, wie Array, Math und XML, definieren komplexere Objekte.

Alle Klassen, ob integriert oder benutzerdefiniert, sind von der Object-Klasse abgeleitet. Programmierer mit ActionScript-Erfahrungen müssen wissen, dass der Datentyp „Object“ nicht mehr der Standarddatentyp ist, obwohl alle anderen Klassen weiterhin von diesem Datentyp abgeleitet werden. In ActionScript 2.0 waren die folgenden beiden Codezeilen gleichwertig, da das Fehlen einer Typanmerkung bedeutete, dass eine Variable den Typ „Object“ annahm:

var someObj:Object; 
var someObj;

Mit ActionScript 3.0 wurde jedoch das Konzept von nicht typisierten Variablen eingeführt, das auf zwei Arten beschrieben werden kann:

var someObj:*; 
var someObj;

Eine nicht typisierte Variable ist nicht das Gleiche wie eine Variable des Typs „Object“. Der wesentliche Unterschied besteht darin, dass nicht typisierten Variable den Sonderwert undefined enthalten können, während eine Variable des Typs „Object“ diesen Wert nicht annehmen kann.

Sie können eigene Klassen mithilfe des Schlüsselworts class definieren. Klasseneigenschaften können auf drei Arten deklariert werden: Konstanten können mit dem Schlüsselwort const definiert werden, Variable mit dem Schlüsselwort var . Get/Set-Eigenschaften werden mithilfe der Attribute get und set in einer Methodendeklaration definiert. Methoden können Sie mit dem Schlüsselwort function deklarieren.

Eine Klasseninstanz erstellen Sie mit dem Operator new . Im folgenden Beispiel wird eine Instanz der Date-Klasse namens myBirthday erstellt.

var myBirthday:Date = new Date();