Flash CS3-Dokumentation |
|||
| Programmieren mit ActionScript 3.0 > Objektorientierte Programmierung mit ActionScript > Klassen > Variable | |||
Variable können mit den Schlüsselwörtern var oder const deklariert werden. Mit dem Schlüsselwort var deklarierte Variable können ihre Werte während der Ausführung eines Skript mehrmals ändern. Mit dem Schlüsselwort const deklarierte Variable werden als Konstanten bezeichnet. Konstanten kann nur einmal ein Wert zugewiesen werden. Der Versuch, einer bereits initialisierten Konstanten einen neuen Wert zuzuweisen, führt zu einer Fehlermeldung. Weitere Informationen finden Sie unter Konstanten.
Statische Variable werden mit einer Kombination aus dem Schlüsselwort static und der Anweisung var oder der Anweisung const deklariert. Statische Variable, die an eine Klasse und nicht an eine Instanz einer Klasse angehängt sind, eignen sich insbesondere zum Speichern und gemeinsamen Nutzen von Informationen, die für eine gesamte Objektklasse gelten. So können Sie eine statische Variable einsetzen, wenn Sie zählen möchten, wie oft eine Klasse instanziiert wurde, oder wenn der Höchstwert für zulässige Klasseninstanzen gespeichert werden soll.
Im folgenden Beispielcode werden eine totalCount-Variable (um die Anzahl der Klasseninstanziierungen zu verfolgen) und eine MAX_NUM-Konstante erstellt, in der die Höchstzahl an zulässigen Instanziierungen gespeichert wird. Die Variablen totalCount und MAX_NUM sind statische Variable, da sie Werte enthalten, die für die gesamte Klasse und nicht für eine bestimmte Instanz gelten.
class StaticVars
{
public static var totalCount:int = 0;
public static const MAX_NUM:uint = 16;
}
Code außerhalb der StaticVars-Klasse und einer ihrer Unterklassen kann nur über die Klasse selbst auf die Eigenschaften totalCount und MAX_NUM verweisen. Der folgende Code arbeitet korrekt:
trace(StaticVars.totalCount); // Ausgabe: 0 trace(StaticVars.MAX_NUM); // Ausgabe: 16
Sie können nicht über die Instanz der Klasse auf statische Variable zugreifen, daher gibt der folgende Code Fehlermeldungen zurück:
var myStaticVars:StaticVars = new StaticVars(); trace(myStaticVars.totalCount); // Fehler trace(myStaticVars.MAX_NUM); // Fehler
Mit den Schlüsselwörtern static und const deklarierte Variable müssen zusammen mit der Konstantendeklaration initialisiert werden, wie es die StaticVars-Klasse für MAX_NUM durchführt. Sie können MAX_NUM innerhalb eines Konstruktors oder einer Instanzmethode keinen Wert zuweisen. Der folgende Code erzeugt eine Fehlermeldung, da es sich nicht um eine gültige Methode zum Initialisieren einer statischen Konstante handelt:
// !! Fehler beim Initialisieren einer statischen Konstanten
class StaticVars2
{
public static const UNIQUESORT:uint;
function initializeStatic():void
{
UNIQUESORT = 16;
}
}
Instanzvariable enthalten Eigenschaften, die mit den Schlüsselwörtern var und const, aber ohne das Schlüsselwort static deklariert wurden. Instanzvariable, die nicht an die gesamte Klasse, sondern an Klasseninstanzen angehängt werden, dienen unter anderem zum Speichern von Werten, die speziell für eine Instanz gelten. Beispielsweise verfügt die Array-Klasse über eine Instanzeigenschaft mit dem Namen length, die verschiedene Array-Elemente speichert, die eine bestimmte Instanz der Array-Klasse enthält.
Als var oder const deklarierte Instanzvariable können in einer Unterklasse nicht überschrieben werden. Mit den get- und set-Methoden können Sie jedoch eine Funktionalität erreichen, die dem Überschreiben von Variablen ähnelt. Weitere Informationen finden Sie unter get- und set-Accessormethoden.
Flash CS3
Eine E-Mail an mich senden, wenn dieser Seite Kommentare hinzugefügt werden | Kommentarbericht
Aktuelle Seite: http://livedocs.adobe.com/flash/9.0_de/main/00000063.html