사용자 정의 클래스 만들기

class 문을 사용하여 클래스를 정의합니다. 기본적으로 클래스 멤버는 공개적으로 액세스할 수 있으므로 클래스에 액세스할 수 있는 코드라면 클래스 멤버에도 액세스할 수 있습니다. 자세한 내용은 JScript 한정자를 참조하십시오.

필드가 포함된 클래스

필드는 개체에서 사용하는 데이터를 정의하며, 프로토타입 기반 개체의 속성과 비슷합니다. 다음 예제는 두 개의 필드가 포함된 간단한 클래스입니다. new 연산자를 사용하여 클래스의 인스턴스를 만듭니다.

class myClass {
   const answer : int = 42; // Constant field.
   var distance : double;   // Variable field.
}

var c : myClass = new myClass;
c.distance = 5.2;
print("The answer is " + c.answer);
print("The distance is " + c.distance);

이 프로그램은 다음과 같이 출력됩니다.

The answer is 42
The distance is 5.2

메서드가 포함된 클래스

또한 클래스는 메서드를 포함할 수 있습니다. 메서드는 클래스에 포함된 함수로서 개체의 데이터를 조작하는 기능을 정의합니다. 앞에서 정의한 클래스 myClass는 메서드를 포함하도록 다시 정의할 수 있습니다.

class myClass {
   const answer : int = 42;         // Constant field.
   var distance : double;           // Variable field.
   function sayHello() :String {    // Method.
      return "Hello";
   }
}

var c : myClass = new myClass;
c.distance = 5.2;
print(c.sayHello() + ", the answer is " + c.answer); 

이 프로그램은 다음과 같이 출력됩니다.

Hello, the answer is 42

생성자가 포함된 클래스

클래스를 위한 생성자를 정의할 수 있습니다. 생성자는 클래스와 같은 이름의 메서드로서 new 연산자를 사용하여 클래스를 만들 때 실행됩니다. 생성자에 대해서는 반환 형식을 지정하지 않을 수도 있습니다. 다음 예제에서는 myClass 클래스에 생성자가 추가됩니다.

class myClass {
   const answer : int = 42;         // Constant field.
   var distance : double;           // Variable field.
   function sayHello() :String {    // Method.
      return "Hello";
   }
   // This is the constructor.
   function myClass(distance : double) {
      this.distance = distance;
   }
}

var c : myClass = new myClass(8.5);
print("The distance is " + c.distance);

이 프로그램은 다음과 같이 출력됩니다.

The distance is 8.5

참고 항목

개념

고급 클래스 만들기

기타 리소스

클래스 기반 개체

JScript 개체