本文介紹PowerShell面向對象編程的基礎知識,我們知道PowerShell里面的所有變量和輸出都是對象,所以有必要在進行PowerShell編程時了解一下面向對象編程的基礎知識。
面向對象編程的引入主要是為了解決軟件復雜化帶來的維護等問題,早在20世紀60年代,面向對象就已經出現了。雖然C語言并不支持面向對象的特性,但是使用C語言進行開發的程序人員已經將面向對象的核心思想應用到其中,因此我們更應該理解的是面向對象的思想,而不需要糾纏于語言本身。
PowerShell是基于對象的腳本語言,因此下面的介紹中我們主要側重于介紹基本概念,并不會涉及如何進行面向對象編程。通過下面知識的學習,你將會了解PowerShell中需要掌握的基本對象知識,從而深刻理解PowerShell采用基于對象的管理帶來的優勢。
類(Class)
為物體(或者說是對象)定義的抽象特性,這些特性包括物體的特征(它的屬性、域或特性)以及物體的行為(它可以做得事情、方法或操作)。某些人會說類就像是設計圖或工廠一樣,用來描述某些事物的自然特性。打個比方來說,狗這個類可能包含所有狗包含的共性,例如:品種和皮毛顏色(它們都是狗的特征)、叫和坐下(它們都是狗的行為)。
對象(Object)
類的特定實例(Instance)。解釋很抽象?對象可以看做是你家的狗,或者你家鄰居的狗。無論如何,它們都是狗類的實例。狗類定義一部分所有狗都具有的特性,例如:三條(顯然狗主人很喜歡打麻將)是一只真實存在的狗,狗類中的信息就可以用來描述三條與其他狗的不同,三條的皮毛是棕色的。我們可以知道三條被歸類為犬科,是狗類的一個實例。
方法(Method)
對象的能力。三條是一條狗,它能夠叫,因此叫就是三條的方法。三條也許還有其他的方法,例如:原地轉圈、作揖、坐下等等。
繼承 (Inheritance)
子類是一個類的特殊版本,它繼承父類的屬性和行為,并引入自己特有的屬性和行為。
我們還是回到前面的例子討論,狗按照品種劃分有很多種,例如:黃金牧羊犬、柯利牧羊犬和吉娃娃。三條是柯利牧羊犬的實例,例如狗類中已經定了了方法叫和屬性皮毛顏色。所以每一個狗類的子類都可以直接繼承這些信息,不需要額外重新定義這些冗余的信息。
子類可以改變繼承的特性。例如:柯利牧羊犬可能指定默認的皮毛顏色為棕色和白色。而吉娃娃子類可能默認指定方法“叫”是產生高音調的叫聲。子類還允許引入新成員,例如吉娃娃子類可能引入方法“顫抖”(吉娃娃的膽子很小,所以遇到危險就會顫抖)。吉娃娃對象還有一個顫抖的方法,但是三條沒有,這是因為三條是柯利牧羊犬,而不是吉娃娃。
新聞熱點
疑難解答