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でマルチタッチ »


コメント