50. クラス
• クラス名は必ず先頭を大文字にする
class Point
{
// インスタンス変数
var x : Int;
var y : Int;
// コンストラクタ
public function new(x, y)
{
this.x = x;
this.y = y;
}
// メソッド
public function toString() : String
{
return "Point(" + x + "," + y + ")";
}
}
53. 継承
class Foo
{
public function new() {}
public function method() {}
}
class Bar extends Foo
{
public function new() {
super();
}
override public function method()
{
super.method();
}
}
54. interface
interface IPoint
{
var x : Int;
var y : Int;
function toString() : String;
}
class Foo implements IPoint
{
public x : Int;
public y : Int;
public function new() {}
public function toString() { /* ... */ }
}
55. ジェネリクス
• クラスに型パラメータをつける
• 関数(メソッド)に型パラメータをつける
class Queue<T>
{
var items : Array<T>;
public function enqueue(entry : T) : Void { }
public function dequeue() : T { }
}
var queue = new Queue<String>();
function foo<T>() { /* ... */ }