次の方法で共有


独自のクラスの作成

更新 : 2007 年 11 月

class ステートメントはクラスを定義します。既定では、クラス メンバにはパブリックにアクセスできます。つまり、クラスにアクセスできるコードからは、クラス メンバにもアクセスできます。詳細については、「JScript の修飾子」を参照してください。

クラスとフィールド

フィールドはオブジェクトで使用されるデータを定義し、プロトタイプ ベースのオブジェクトのプロパティに似ています。2 つのフィールドを持つ簡単なクラスの例を次に示します。クラスのインスタンスは、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 オブジェクト