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