PowerShell クラスのサンプル

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行目の変数にセットされます。

関連の記事

PowerShell 関数のサンプル

△上に戻る