成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

深入剖析Perl面向對象編程

開發 架構
你對Perl面向對象編程的概念是否熟悉,這里向大家簡單介紹一下如何使用Perl的Perl面向對象編程(OOP)特性及如何構建對象,還包括繼承、方法重載和數據封裝等內容。

本文和大家重點討論一下Perl面向對象編程(OOP)的概念,主要包括模塊簡介,Perl中的類,創建類,構造函數,方法,方法的輸出和方法的調用等內容,相信通過本文的學習你對Perl面向對象的概念一定會有深刻的認識。

Perl面向對象編程(OOP)

介紹如何使用Perl的Perl面向對象編程(OOP)特性及如何構建對象,還包括繼承、方法重載和數據封裝等內容。

一、模塊簡介

模塊(module)就是Perl包(pachage)。Perl中的對象基于對包中數據項的引用。(引用見第x章引用)。
詳見http://www.nease.net/tppmsgs/msgs0.htm#28的perlmod和perlobj。
在用其他語言進行Perl面向對象編程時,先聲明一個類然后創建該類的對象(實例),特定類任何對象的行為方式是相同的,由類方法確定,能夠通過定義新類或從現存類繼承來創建類。已熟悉Perl面向對象編程的人能夠在此碰到許多熟悉的術語。Perl一直是個Perl面向對象的語言,在Perl5中,語法略有變動,更規范化了對象的使用。

下面三個定義對理解對象、類和方法在Perl中如何工作至關重要。
◆類是個Perl包,其中含提供對象方法的類。
◆方法是個Perl子程式,類名是其***個參數。
◆對象是對類中數據項的引用。.

二、Perl中的類

再強調一下,一個Perl類是僅是個包而已。當您看到Perl文檔中提到“類”時,把他看作“包”就行了。Perl5的語法能夠創建類,假如您已熟悉C,那么大部分語法您已掌控了。和Perl4不同的概念是用雙冒號(::)來標識基本類和繼承類(子類)。
Perl面向對象的一個重要特性是繼承。Perl中的繼承特性和其他Perl面向對象語言不完全相同,他只繼承方法,您必須用自己的機制來實現數據的繼承。
因為每個類是個包,所以他有自己的名字空間及自己的符號名關聯數組(詳見第x章關聯數組),每個類因而能夠使用自己的單獨符號名集。和包的引用結合,能夠用單引號(\\')操作符來定位類中的變量,類中成員的定位形式如:$class\\'$member。在Perl5中,可用雙冒號替代單引號來獲得引用,如:$class\\'$member和$class::$member相同。.

三、創建類

本節介紹創建一個新類的必要步驟。下面使用的例子是創建一個稱為Cocoa的簡單的類,其功能是輸出一個簡單的Java應用的源碼的必要部分。放心,這個例子無需您有Java的知識,但也不會使您成為Java專家,其目的是講述創建類的概念。
首先,創建一個名為Cocoa.pm的包文檔(擴展名pm是包的缺省擴展名,意為PerlModule)。一個模塊就是個包,一個包就是個類。在做其他事之前,先加入“1;”這樣一行,當您增加其他行時,記住保留“1;”為***一行。這是Perl包的必需條件,否則該包就不會被Perl處理。.

四、構造函數

Perl面向對象中構造函數是類的子程式,他返回和類名相關的一個引用。將類名和引用相結合稱為“祝福”一個對象,因為建立該結合的函數名為bless(),其語法為:
blessYeReference[,classname]
YeReference是對被“祝福”的對象的引用,classname是可選項,指定對象獲取方法的包名,其缺省值為當前包名。
創建一個構建函數的方法為返回已和該類結合的內部結構的引用。如..

  1. subnew{  
  2. my$this={};#Createananonymoushash,and#selfpointstoit.  
  3. bless$this;#ConnectthehashtothepackageCocoa.  
  4. return$this;#Returnthereferencetothehash.  
  5. }  
  6.  

 五、方法

Perl類的方法只但是是個Perl子程式而已,也即通常所說的成員函數。Perl面向對象中Perl的方法定義不提供任何特別語法,但規定方法的***個參數為對象或其被引用的包。Perl有兩種方法:靜態方法和虛方法。
靜態方法***個參數為類名,虛方法***個參數為對象的引用。方法處理***個參數的方式決定了他是靜態的還是虛的。靜態方法一般忽略掉***個參數,因為他們已知道自己在哪個類了,構造函數即靜態方法。虛方法通常首先把***個參數shift到變量self或this中,然后將該值作普通的引用使用。.

六、方法的輸出

假如您現在想引用Cocoa.pm包,將會得到編譯錯誤說未找到方法,這是因為Cocoa.pm的方法還沒有輸出。輸出方法需要Exporter模塊,在包的開始部分加上下列兩行:
requireExporter;
@ISA=qw(Exporter);
Perl面向對象中Perl類的繼承是通過@ISA數組實現的。@ISA數組無需在任何包中定義,然而,一旦他被定義,Perl就把他看作目錄名的特別數組。他和@INC數組類似,@INC是包含文檔的尋找路徑。@ISA數組含有類(包)名,當一個方法在當前包中未找到時就到@ISA中的包去尋找。@ISA中還含有當前類繼承的基類名。

類中調用的任何方法必須屬于同一個類或@ISA數組定義的基類。假如一個方法在@ISA數組中未找到,Perl就到AUTOLOAD()子程式中尋找,這個可選的子程式在當前包中用sub定義。若使用AUTOLOAD子程式,必須用useAutoload;語句調用autoload.pm包。AUTOLOAD子程式嘗試從已安裝的Perl庫中裝載調用的方法。假如AUTOLOAD也失敗了,Perl再到UNIVERSAL類做***一次嘗試,假如仍失敗,Perl就生成關于該無法解析函數的錯誤。..

七、方法的調用

調用一個對象的方法有兩種方法,一是通過該象的引用(虛方法),一是直接使用類名(靜態方法)。。

【編輯推薦】

  1. Perl面向對象編程的兩種實現和比較
  2. 解析三大Perl變量用法
  3. Perl語言中的五大變量類型
  4. 揭秘Perl變量中Perl純變量用法
  5. Perl程序設計中的Perl用戶函數(子程序)

 

責任編輯:佚名 來源: csdn.net
相關推薦

2010-07-20 09:33:14

Perl方法

2010-07-20 13:44:02

Perl方法

2010-07-16 17:23:57

Perl面向對象編程

2010-07-13 17:18:29

Perl面向對象編程

2010-07-20 09:23:30

Perl構造函數

2010-07-13 14:38:33

Perl面向對象編程

2011-06-28 14:11:33

JavaScript

2010-07-20 09:13:55

Perl面向對象編程

2010-07-14 10:59:15

Perl線程

2010-07-13 10:47:18

Perl面向對象

2010-07-13 14:54:15

Perl面向對象編程

2010-06-18 10:48:05

UML面向對象軟件開發

2010-07-09 13:55:53

UML面向對象建模

2023-11-02 07:55:31

Python對象編程

2011-07-11 17:38:42

JAVA

2010-06-12 14:35:46

UML對象圖

2010-02-04 13:50:56

ibmdw云計算

2010-07-19 16:03:12

Perl變量類型

2010-02-02 13:22:06

Python面向對象

2024-01-03 13:38:00

C++面向對象編程OOP
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲国产aⅴ成人精品无吗 欧美激情欧美激情在线五月 | 干一干操一操 | 天堂在线网 | 午夜国产精品视频 | 免费大黄视频 | 国产片一区二区三区 | 九九99精品 | 国产欧美一区二区三区日本久久久 | 日日噜噜夜夜爽爽狠狠 | 国产精品久久久久久久7777 | 欧美黑人一级爽快片淫片高清 | 男人天堂国产 | 久久精品一级 | 欧美视频一区 | 超碰在线免费公开 | 日本精品一区二区三区在线观看视频 | 欧美精品91 | 久久激情视频 | 日韩欧美一级片 | 欧美性网站 | 性色的免费视频 | 人人看人人爽 | 国产成人高清视频 | 亚洲视频免费观看 | 久久成人人人人精品欧 | 狠狠的干 | 国产精品久久久久久久久久久久久 | 欧美精品久久久久久 | 成人欧美一区二区三区黑人孕妇 | 中文字幕日韩欧美一区二区三区 | 久久99精品久久 | 欧美专区在线 | 精品国产乱码久久久久久闺蜜 | 中文字幕一页二页 | 成人国产在线观看 | 日韩高清中文字幕 | www.日韩 | 国产精品毛片一区二区三区 | 色小姐综合网 | 精品欧美乱码久久久久久 | 国产高清视频一区 |