TypeScriptメモ(3) クラス
よし、次はクラスだ。
メンバ変数、関数は次のように宣言する。varやfunctionはなしで変数や関数の宣言と同じように書く。アクセス修飾子は、public、privateだけでprotectedはないようだ。
class Hoge1 { // メンバ変数 private aaa:number; // コンストラクタ constructor(a:number) { this.aaa = a; } // メンバ関数 public hoge():number { return this.aaa; } private hogeHoge():number { return 44; } // プロパティ // アクセッサ(set) public set AAA(val:number) { alert("set"); this.aaa = val; } // アクセッサ(get) public get AAA():number { alert("get"); return this.aaa; } } var hoge1:Hoge1 = new Hoge1(20); alert(hoge1.AAA); hoge1.AAA = 33; alert(hoge1.hoge()); // メンバ関数を呼び出す。 alert(hoge1.hogeHoge()); // プライベートなんでエラー
継承は次のような感じ。クラス名のあとにextendsでスーパークラス名を書く。
コンストラクタでスーパークラスのコンストラクタを呼ぶのはsuper()で呼び出さないといけない。superでスーパークラスの関数や変数、プロパティにアクセスできる。
関数のオーバーライドは同じ関数を宣言するだでオーバーライドできる。
class Hoge1 { // メンバ変数 private aaa:number; // コンストラクタ constructor(a:number) { this.aaa = a; } // メンバ関数 public hoge():string { return "Hoge1.hoge()"; } // プロパティ // アクセッサ(set) public set AAA(val:number) { this.aaa = val; } // アクセッサ(get) public get AAA():number { return this.aaa; } } class Hoge2 extends Hoge1 { private bbb:number; constructor() { super(234); // スーパークラスのコンストラクタ呼び出し this.bbb = 2; } public hoge():string { return "Hoge2.hoge()"; } public hoge2():string { return super.hoge(); // superでスーパークラスの関数を呼び出す。 } public getBBB():number { return this.bbb; } } var hoge1:Hoge1 = new Hoge2(); // 継承してるのでHoge1型の変数に代入できる alert(hoge1.hoge()); // "Hoge2.hoge()"が表示され、オーバーライドできてるのが確認できる alert(hoge1.AAA); // "234"が表示される var hoge2:Hoge2 = <Hoge2>hoge1; // これでダウンキャストできる alert(hoge2.hoge2()); alert(hoge2.getBBB());
インターフェイスについては次のメモ(予定)で書こうかな。
« TypeScriptメモ(2) 引数の省略、関数のオーバーロード | トップページ | [WPF] Windowsでマルチタッチ »
「プログラミング」カテゴリの記事
- Wii UでBASIC言語のプログラミングができる『プチコンBIG』が12月14日配信開始 - ファミ通.com(2016.12.07)
- プログラミング関係は別ブログに~(2015.04.21)
- Amazon.co.jp: 関数型プログラミングに目覚めた! IQ145の女子高校生の先輩から受けた特訓5日間: 岡部健: 本(2015.04.13)
- α版のリリースから1年4カ月、「Node.js Tools for Visual Studio」v1.0が正式版に - 窓の杜(2015.03.26)
- Nodeビギナーズブック » Node.jsチュートリアル » Node.js 教程(2015.03.13)
「TypeScript」カテゴリの記事
- TypeScript 1.4 for Visual Studio 2013 拡張機能(2015.02.21)
- TypeScriptメモ(7) jQueryを使う(2014.11.11)
- TypeScriptメモ(6) ジェネリクス(2014.10.10)
- TypeScriptメモ(5) モジュール(2014.10.09)
- TypeScriptメモ(4) インターフェイス(2014.10.07)
この記事へのコメントは終了しました。
« TypeScriptメモ(2) 引数の省略、関数のオーバーロード | トップページ | [WPF] Windowsでマルチタッチ »
コメント