객체 및 클래스

ActionScript 3.0에서 모든 객체는 클래스로 정의됩니다. 클래스는 객체 유형의 청사진 또는 템플릿으로 간주할 수 있습니다. 클래스 정의에 변수, 상수 및 메서드를 포함할 수 있습니다. 변수 및 상수에는 데이터 값이 저장되며, 메서드는 클래스에 연결된 비헤이비어를 캡슐화하는 함수입니다. 속성에 저장된 값은 프리미티브 값 또는 다른 객체일 수 있습니다. 프리미티브 값에는 Number, String 및 부울 값이 있습니다.

ActionScript에는 여러 내장 클래스가 기본 언어의 일부로 포함되어 있습니다. Number, Boolean 및 String과 같은 일부 내장 클래스는 ActionScript에서 사용할 수 있는 프리미티브 값을 나타냅니다. 그 밖에 Array, Math 및 XML과 같은 클래스는 보다 복잡한 객체를 정의합니다.

내장되어 있거나 사용자 정의된 모든 클래스는 Object 클래스에서 파생됩니다. 이전의 ActionScript에 익숙한 프로그래머의 경우, 모든 클래스가 여전히 Object 클래스에서 파생되지만 Object 데이터 유형이 더 이상 기본 데이터 유형이 아니라는 점에 유의해야 합니다. ActionScript 2.0에서는 유형 약어가 생략된 변수를 Object 유형으로 간주하므로 다음과 같은 두 개의 코드 행이 동일했습니다.

var someObj:Object; 
var someObj;

그러나 ActionScript 3.0에서는 유형이 지정되지 않은 변수의 개념을 소개하며 이는 다음과 같은 두 가지 방법으로 지정할 수 있습니다.

var someObj:*; 
var someObj;

유형이 지정되지 않은 변수는 Object 유형의 변수와 다릅니다. 주요 차이점은 유형이 지정되지 않은 변수에는 undefined 특수 값을 저장할 수 있는 반면 Object 유형의 변수에는 이 값을 저장할 수 없다는 것입니다.

class 키워드를 사용하여 클래스를 직접 정의할 수 있습니다. 클래스 속성은 세 가지 방법으로 선언할 수 있습니다. 상수는 const 키워드를 사용하여 정의하고, 변수는 var 키워드를 사용하여 정의하며, getter 및 setter 속성은 메서드 선언에서 getset 특성을 사용하여 정의할 수 있습니다. 메서드는 function 키워드를 사용하여 선언할 수 있습니다.

new 연산자를 사용하여 클래스의 인스턴스를 만듭니다. 다음 예제에서는 myBirthday라는 Date 클래스의 인스턴스를 만듭니다.

var myBirthday:Date = new Date();