top
Loading...
Perl的面向對象編程(一)
一、模塊簡介
  模塊(module)就是Perl包(pachage)。Perl中的對象基于對包中數據項的引用。(引用見第x章引用)。
詳見http://www.metronet.com的perlmod和perlobj。
  在用其它語言進行面向對象編程時,先聲明一個類然后創建該類的對象(實例),特定類所有對象的行為方式是相同的,由類方法確定,可以通過定義新類或從現存類繼承來創建類。已熟悉面向對象編程的人可以在此遇到許多熟悉的術語。Perl一直是一個面向對象的語言,在Perl5中,語法略有變動,更規范化了對象的使用。
  下面三個定義對理解對象、類和方法在Perl中如何工作至關重要。
  .類是一個Perl包,其中含提供對象方法的類。
  .方法是一個Perl子程序,類名是其第一個參數。
  .對象是對類中數據項的引用。
二、Perl中的類
  再強調一下,一個Perl類是僅是一個包而已。當你看到Perl文檔中提到“類”時,把它看作“包”就行了。Perl5的語法可以創建類,如果你已熟悉C++,那么大部分語法你已經掌握了。與Perl4不同的概念是用雙冒號(::)來標識基本類和繼承類(子類)。
  面向對象的一個重要特性是繼承。Perl中的繼承特性與其它面向對象語言不完全一樣,它只繼承方法,你必須用自己的機制來實現數據的繼承。
  因為每個類是一個包,所以它有自己的名字空間及自己的符號名關聯數組(詳見第x章關聯數組),每個類因而可以使用自己的獨立符號名集。與包的引用結合,可以用單引號(’)操作符來定位類中的變量,類中成員的定位形式如:$class’$member。在Perl5中,可用雙冒號替代單引號來獲得引用,如:$class’$member與$class::$member相同。
三、創建類。
  本節介紹創建一個新類的必要步驟。下面使用的例子是創建一個稱為Cocoa的簡單的類,其功能是輸出一個簡單的Java應用的源碼的必要部分。放心,這個例子不需要你有Java的知識,但也不會使你成為Java專家,其目的是講述創建類的概念。
  首先,創建一個名為Cocoa.pm的包文件(擴展名pm是包的缺省擴展名,意為Perl Module)。一個模塊就是一個包,一個包就是一個類。在做其它事之前,先加入“1;”這樣一行,當你增加其它行時,記住保留“1;”為最后一行。這是Perl包的必需條件,否則該包就不會被Perl處理。下面是該文件的基本結構。


package Cocoa;

#
# Put "require" statements in for all required,imported packages
#

#
# Just add code here
#

1; # terminate the package with the required 1;


  接下來,我們往包里添加方法使之成為一個類。第一個需添加的方法是new(),它是創建對象時必須被調用的,new()方法是對象的構造函數。
北斗有巢氏 有巢氏北斗