PowerShell 【オブジェクト指向編】
目次
クラス
クラスを使用した乗算処理について解説します。
プログラムソース
クラス
class MyCls {
$X
$Y
$Z
MyMethod() {
$this.Z = $this.X * $this.Y
}
}
メイン
.".\MyCls.ps1" $A = New-Object MyCls $A.X = 2 $A.Y = 3 $A.MyMethod() Write-Host $A.Z
解説
$変数=値
メンバ変数を宣言します。
メソッド名() {
処理
}
処理
}
メソッドを宣言します。
変数 = ファイル名.クラス名
クラスのインスタンスを生成します。
コンストラクタ
コンストラクタを使用して、オブジェクト指向の特徴であるカプセル化について解説します。
プログラムソース
クラス
class MyCls {
$X
MyCls($Y) {
$this.X = $Y
}
MyMethod() {
Write-Host $this.X
}
}
メイン
.".\MyCls.ps1"
$A = New-Object MyCls("コンストラクタ")
$A.MyMethod()
解説
$変数=値
ローカル変数を宣言します。
クラス名() {
処理
}
処理
}
コンストラクタを宣言します。
継承
オブジェクト指向の特徴である継承について解説します。
プログラムソース
親クラス
class ParentCls {
ParentMethod() {
Write-Host "親クラス"
}
}
子クラス
class ChildCls : ParentCls {
ChildMethod() {
Write-Host "子クラス"
}
}
メイン
.".\ParentCls.ps1" .".\ChildCls.ps1" $A = New-Object ChildCls $A.ParentMethod() $A.ChildMethod()
解説
class クラス名 : 継承元クラス名
クラスを継承します。
オーバーロード
オーバーロードを使用して、オブジェクト指向の特徴であるポリモーフィズムについて解説します。
プログラムソース
親クラス
class ParentCls {
MyMethod() {
Write-Host "親クラス"
}
}
子クラス
class ChildCls : ParentCls {
MyMethod($X) {
Write-Host $X
}
}
メイン
.".\ParentCls.ps1"
.".\ChildCls.ps1"
$A = New-Object ChildCls
$A.MyMethod()
$A.MyMethod("子クラス")
オーバーライド
オーバーライドを使用して、オブジェクト指向の特徴であるポリモーフィズムについて解説します。
プログラムソース
親クラス
class ParentCls {
MyMethod() {
Write-Host "親クラス"
}
}
子クラス
class ChildCls : ParentCls {
MyMethod() {
Write-Host "子クラス"
}
}
メイン
.".\ParentCls.ps1" .".\ChildCls.ps1" $A = New-Object ChildCls $A.MyMethod()