オブジェクト指向プログラミング(OOP)
- 現実世界の物に見立ててプログラミングする
- 実装者にとってわかりやすくロジックを分割する
Class
- オブジェクトの設計図
- Classから生成されたオブジェクトはインスタンスと呼ぶ
- typescriptではClassも型になる
ex)
// Classメソッド
greeting(this: { name: string }) {
console.log(`Hello! My name is ${this.name}`)
}
- 下記のようにメソッドにclassを型として指定すると厳格なチェックが行える
greeting(this: Person) {
console.log(`Hello! My name is ${this.name}`)
}
- 初期化の処理を省略する
ex)
name: string;
// privateが指定された変数はClassの外からアクセスできない
private age: number;
// Class初期化時に実行される
constructor(initName: string, initAge: number) {
this.name = initName
this.age = initAge
}
- 下記のようにconstructorを記述することで初期化をスマートに記述することができる
Classサンプル
class Person {
constructor(public name: string, private age: number) {
}
incrmentAge() {
this.age += 1
}
// Classメソッド
//greeting(this: { name: string }) {
greeting(this: Person) {
console.log(`こんんちは、わたしのなまえは ${this.name}. ${this.age}才です `)
}
}
const taro = new Person('Yamada Taro', 42)
taro.incrmentAge()
taro.greeting()
実行結果
# tsc # node class.js こんんちは、わたしのなまえは Yamada Taro. 43才です