변수

변수는 var 또는 const 키워드로 선언할 수 있습니다. var 키워드로 선언된 변수의 값은 스크립트 실행 중 여러 차례 변경될 수 있습니다. const 키워드로 선언된 변수는 상수라고 하며, 값을 한 번만 지정할 수 있습니다. 초기화된 상수에 새 값을 지정하려고 하면 오류가 발생합니다. 자세한 내용은 상수를 참조하십시오.

세부 목차

정적 변수
인스턴스 변수

정적 변수

정적 변수는 static 키워드를 var 또는 const 문 중 하나와 조합하여 선언합니다. 정적 변수는 클래스의 인스턴스가 아닌 클래스 자체에 연결되며, 객체의 전체 클래스에 적용되는 정보를 저장 및 공유하는 데 유용합니다. 예를 들어, 클래스가 인스턴스화된 횟수를 집계하거나 클래스 인스턴스의 최대 개수를 저장하려는 경우에 정적 변수가 적합합니다.

다음 예제에서는 totalCount 변수를 만들어 클래스 인스턴스화 횟수를 추적하고 MAX_NUM 상수를 만들어 인스턴스화 최대 횟수를 저장합니다. totalCountMAX_NUM 변수는 특정 인스턴스가 아닌 전체 클래스에 적용되는 값을 포함하므로 정적 변수입니다.

class StaticVars
{
    public static var totalCount:int = 0;
    public static const MAX_NUM:uint = 16;
}

StaticVars 클래스의 외부에 있는 코드나 하위 클래스에 있는 코드에서는 클래스 자체를 통해서만 totalCountMAX_NUM 속성을 참조할 수 있습니다. 예를 들어, 다음 코드를 사용해야 합니다.

trace(StaticVars.totalCount); // 출력: 0
trace(StaticVars.MAX_NUM); // 출력: 16

클래스 인스턴스를 통해서는 정적 변수에 액세스할 수 없으므로 다음 코드에서는 오류가 반환됩니다.

var myStaticVars:StaticVars = new StaticVars();
trace(myStaticVars.totalCount); // 오류
trace(myStaticVars.MAX_NUM); // 오류

staticconst 키워드를 모두 사용하여 선언한 변수는 StaticVars 클래스에서 MAX_NUM의 경우와 같이 상수를 선언함과 동시에 초기화해야 합니다. 생성자나 인스턴스 메서드 내에서는 MAX_NUM에 값을 지정할 수 없습니다. 다음 코드에서는 정적 상수를 제대로 초기화하지 않았으므로 오류가 발생합니다.

// !! 정적 상수를 이런 식으로 초기화하면 오류가 발생합니다.
class StaticVars2
{
    public static const UNIQUESORT:uint;
    function initializeStatic():void
    {
        UNIQUESORT = 16;
    }
}

인스턴스 변수

인스턴스 변수에는 static 키워드 없이 varconst 키워드로 선언된 속성이 포함됩니다. 인스턴스 변수는 전체 클래스가 아닌 클래스 인스턴스에 연결되며 인스턴스에 고유한 값을 저장하는 데 유용합니다. 예를 들어 Array 클래스에는 Array 클래스의 특정 인스턴스에 들어 있는 배열 요소의 수가 저장되는 length라는 인스턴스 속성이 있습니다.

인스턴스 변수는 var 또는 const 등 선언된 방식에 관계없이 하위 클래스에서 재정의할 수 없습니다. 그러나 getter 및 setter 메서드를 재정의하면 변수를 재정의하는 것과 비슷한 결과를 달성할 수 있습니다. 자세한 내용은 get 및 set 접근자 메서드를 참조하십시오.


Flash CS3

 

이 페이지에 의견 추가되면 전자 메일 알림 받기 | 의견 보고서

현재 페이지: http://livedocs.adobe.com/flash/9.0_kr/main/00000063.html