PowerShellのクラスのサンプルです。
目次
サンプル | クラスとは |
クラスのサンプル | |
クラスのコンストラクタのサンプル |
クラスとは
- クラスは、フィールド(データ)とメソッド(処理)を定義できます。
- クラスは設計図や型枠のイメージです。
- クラスからNew-Objectを使用してオブジェクト(インスタンス)を生成できます。インスタンス化といいます。
クラスのサンプル
class color {
[string] $name
[string] getName() {
$moji = '色は'
return $moji + $this.name
}
setName([string]$name) {
$this.name = $name
}
}
$cr1 = New-Object color
$cr2 = New-Object color
$cr3 = New-Object color
$cr1.setName('赤')
$cr2.setName('黄')
$cr3.setName('青')
Write-Host $cr1.getName() # 色は赤
Write-Host $cr2.getName() # 色は黄
Write-Host $cr3.getName() # 色は青
1~11行目は、Colorというクラスです。
12~14行目は、Colorクラスのインスタンスを3つ生成しています。
構文は、変数 = New-Object クラス名です。
10~12行目は、インスタンスに値をセットしています。
ポイントは、インスタンスごとに保持するデータが異なる点です
14~16行目は、インスタンスから値を取得して表示しています。
クラスのコンストラクタのサンプル
コンストラクタは、クラスをインスタンス化する時に実行され、初期値を設定するときなどに使用されます。
コンストラクタ名は、クラス名と同じにします。
class color {
[string] $name
color([string]$name) {
$this.name = $name
}
[string] getName() {
$moji = '色は'
return $moji + $this.name
}
}
$cr1 = New-Object color('赤')
$cr2 = New-Object color('黄')
$cr3 = New-Object color('青')
Write-Host $cr1.getName() # 色は赤
Write-Host $cr2.getName() # 色は黄
Write-Host $cr3.getName() # 色は青
4~6行目がコンストラクタです。
コンストラクタ名(color)は、1行目のクラス名(color)と同じにします。
13~15行目は、colorクラスをインスタンス化しています。
その際に4行目が呼ばれ、5行目で引数の値が2行目の変数にセットされます。
関連の記事