独自のクラスの作成
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