Flash CS3 설명서 |
|||
| ActionScript 3.0 프로그래밍 > ActionScript의 객체 지향 프로그래밍 > 클래스 > 변수 | |||
변수는 var 또는 const 키워드로 선언할 수 있습니다. var 키워드로 선언된 변수의 값은 스크립트 실행 중 여러 차례 변경될 수 있습니다. const 키워드로 선언된 변수는 상수라고 하며, 값을 한 번만 지정할 수 있습니다. 초기화된 상수에 새 값을 지정하려고 하면 오류가 발생합니다. 자세한 내용은 상수를 참조하십시오.
정적 변수는 static 키워드를 var 또는 const 문 중 하나와 조합하여 선언합니다. 정적 변수는 클래스의 인스턴스가 아닌 클래스 자체에 연결되며, 객체의 전체 클래스에 적용되는 정보를 저장 및 공유하는 데 유용합니다. 예를 들어, 클래스가 인스턴스화된 횟수를 집계하거나 클래스 인스턴스의 최대 개수를 저장하려는 경우에 정적 변수가 적합합니다.
다음 예제에서는 totalCount 변수를 만들어 클래스 인스턴스화 횟수를 추적하고 MAX_NUM 상수를 만들어 인스턴스화 최대 횟수를 저장합니다. totalCount 및 MAX_NUM 변수는 특정 인스턴스가 아닌 전체 클래스에 적용되는 값을 포함하므로 정적 변수입니다.
class StaticVars
{
public static var totalCount:int = 0;
public static const MAX_NUM:uint = 16;
}
StaticVars 클래스의 외부에 있는 코드나 하위 클래스에 있는 코드에서는 클래스 자체를 통해서만 totalCount 및 MAX_NUM 속성을 참조할 수 있습니다. 예를 들어, 다음 코드를 사용해야 합니다.
trace(StaticVars.totalCount); // 출력: 0 trace(StaticVars.MAX_NUM); // 출력: 16
클래스 인스턴스를 통해서는 정적 변수에 액세스할 수 없으므로 다음 코드에서는 오류가 반환됩니다.
var myStaticVars:StaticVars = new StaticVars(); trace(myStaticVars.totalCount); // 오류 trace(myStaticVars.MAX_NUM); // 오류
static과 const 키워드를 모두 사용하여 선언한 변수는 StaticVars 클래스에서 MAX_NUM의 경우와 같이 상수를 선언함과 동시에 초기화해야 합니다. 생성자나 인스턴스 메서드 내에서는 MAX_NUM에 값을 지정할 수 없습니다. 다음 코드에서는 정적 상수를 제대로 초기화하지 않았으므로 오류가 발생합니다.
// !! 정적 상수를 이런 식으로 초기화하면 오류가 발생합니다.
class StaticVars2
{
public static const UNIQUESORT:uint;
function initializeStatic():void
{
UNIQUESORT = 16;
}
}
인스턴스 변수에는 static 키워드 없이 var 및 const 키워드로 선언된 속성이 포함됩니다. 인스턴스 변수는 전체 클래스가 아닌 클래스 인스턴스에 연결되며 인스턴스에 고유한 값을 저장하는 데 유용합니다. 예를 들어 Array 클래스에는 Array 클래스의 특정 인스턴스에 들어 있는 배열 요소의 수가 저장되는 length라는 인스턴스 속성이 있습니다.
인스턴스 변수는 var 또는 const 등 선언된 방식에 관계없이 하위 클래스에서 재정의할 수 없습니다. 그러나 getter 및 setter 메서드를 재정의하면 변수를 재정의하는 것과 비슷한 결과를 달성할 수 있습니다. 자세한 내용은 get 및 set 접근자 메서드를 참조하십시오.
Flash CS3
이 페이지에 의견 추가되면 전자 메일 알림 받기 | 의견 보고서
현재 페이지: http://livedocs.adobe.com/flash/9.0_kr/main/00000063.html