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

深入剖析Perl面向?qū)ο缶幊?/h1>

開發(fā) 架構
你對Perl面向?qū)ο缶幊痰母拍钍欠袷煜ぃ@里向大家簡單介紹一下如何使用Perl的Perl面向?qū)ο缶幊?OOP)特性及如何構建對象,還包括繼承、方法重載和數(shù)據(jù)封裝等內(nèi)容。

本文和大家重點討論一下Perl面向?qū)ο缶幊?OOP)的概念,主要包括模塊簡介,Perl中的類,創(chuàng)建類,構造函數(shù),方法,方法的輸出和方法的調(diào)用等內(nèi)容,相信通過本文的學習你對Perl面向?qū)ο蟮母拍钜欢〞猩羁痰恼J識。

Perl面向?qū)ο缶幊?OOP)

介紹如何使用Perl的Perl面向?qū)ο缶幊?OOP)特性及如何構建對象,還包括繼承、方法重載和數(shù)據(jù)封裝等內(nèi)容。

一、模塊簡介

模塊(module)就是Perl包(pachage)。Perl中的對象基于對包中數(shù)據(jù)項的引用。(引用見第x章引用)。
詳見http://www.nease.net/tppmsgs/msgs0.htm#28的perlmod和perlobj。
在用其他語言進行Perl面向?qū)ο缶幊虝r,先聲明一個類然后創(chuàng)建該類的對象(實例),特定類任何對象的行為方式是相同的,由類方法確定,能夠通過定義新類或從現(xiàn)存類繼承來創(chuàng)建類。已熟悉Perl面向?qū)ο缶幊痰娜四軌蛟诖伺龅皆S多熟悉的術語。Perl一直是個Perl面向?qū)ο蟮恼Z言,在Perl5中,語法略有變動,更規(guī)范化了對象的使用。

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

二、Perl中的類

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

三、創(chuàng)建類

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

四、構造函數(shù)

Perl面向?qū)ο笾袠嬙旌瘮?shù)是類的子程式,他返回和類名相關的一個引用。將類名和引用相結合稱為“祝福”一個對象,因為建立該結合的函數(shù)名為bless(),其語法為:
blessYeReference[,classname]
YeReference是對被“祝福”的對象的引用,classname是可選項,指定對象獲取方法的包名,其缺省值為當前包名。
創(chuàng)建一個構建函數(shù)的方法為返回已和該類結合的內(nèi)部結構的引用。如..

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

 五、方法

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

六、方法的輸出

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

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

七、方法的調(diào)用

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

【編輯推薦】

  1. Perl面向?qū)ο缶幊痰膬煞N實現(xiàn)和比較
  2. 解析三大Perl變量用法
  3. Perl語言中的五大變量類型
  4. 揭秘Perl變量中Perl純變量用法
  5. Perl程序設計中的Perl用戶函數(shù)(子程序)

 

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

2010-07-20 09:33:14

Perl方法

2010-07-20 13:44:02

Perl方法

2010-07-16 17:23:57

Perl面向?qū)ο缶幊?/a>

2010-07-13 17:18:29

Perl面向?qū)ο缶幊?/a>

2010-07-20 09:23:30

Perl構造函數(shù)

2010-07-13 14:38:33

Perl面向?qū)ο缶幊?/a>

2011-06-28 14:11:33

JavaScript

2010-07-20 09:13:55

Perl面向?qū)ο缶幊?/a>

2010-07-13 10:47:18

Perl面向?qū)ο?/a>

2010-07-13 14:54:15

Perl面向?qū)ο缶幊?/a>

2010-07-14 10:59:15

Perl線程

2010-06-18 10:48:05

UML面向?qū)ο筌浖_發(fā)

2010-07-09 13:55:53

UML面向?qū)ο蠼?/a>

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面向?qū)ο?/a>

2024-01-03 13:38:00

C++面向?qū)ο缶幊?/a>OOP
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品一区二区三区四区五区 | 在线中文视频 | 欧美三级成人理伦 | 欧美成人精品激情在线观看 | 亚洲一区二区免费电影 | 一级黄色绿像片 | 四色永久| 欧美成视频在线观看 | 91中文字幕在线观看 | 天天干天天干 | 日韩av免费看 | 99久久久久久 | 精品乱码一区二区 | 黄网站涩免费蜜桃网站 | 91av在线免费观看 | 国产一区二区三区色淫影院 | 欧美日韩在线观看视频网站 | 在线免费中文字幕 | 成人国产a | 怡红院怡春院一级毛片 | 国产精品日韩在线观看一区二区 | 婷婷久久综合 | 日本三级网址 | 青青草视频网 | 国产精品国色综合久久 | 天堂中文字幕av | 免费h在线 | 日韩在线看片 | 日韩美女一区二区三区在线观看 | 日本成人综合 | 成人精品国产 | 91综合在线视频 | 久久伊人一区 | 99小视频| 久久只有精品 | 欧美一级大片免费观看 | 国产成人精品一区二区三区网站观看 | 精品国产乱码久久久久久蜜臀 | 伊人久麻豆社区 | 日日摸日日添日日躁av | 一级黄色片免费 |