新聞中心
本文和大家重點(diǎn)討論一下Perl類的概念,.要做好在Perl下的面向?qū)ο缶幊蹋悴粌H要簡單的用LarryWall提出Perl面向?qū)ο缶幊痰臉?biāo)準(zhǔn),同時要對Perl類的概念及應(yīng)用非常熟悉。

站在用戶的角度思考問題,與客戶深入溝通,找到交城網(wǎng)站設(shè)計(jì)與交城網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋交城地區(qū)。
Perl類
大多數(shù)人其實(shí)都沒有注意到,Perl也是一種面向?qū)ο蟮木幊陶Z言,但它又和傳統(tǒng)的面向?qū)ο蟮恼Z言:如C++,Java完全不一樣.要做好在Perl下的面向?qū)ο缶幊?你只要簡單的用LarryWall提出Perl面向?qū)ο缶幊痰臉?biāo)準(zhǔn)就可以了。
這里舉一個簡單的例子:Person類代表一個人,包含一個人的一些簡單的信息:名字,社會保障號等。
包
要創(chuàng)建一個Perl類,首先我們先要創(chuàng)建一個包--package.一個package是一個自包含的單元,它包含一些用戶定義的變量和方法,類似于Java中的Package和C#中的namespace,也起到一個命名空間的作用.不同命名空間下的相同名字的變量,相互之間是不沖突的。
聲明一個Perl類:packagePerson;
Person的作用域一直到這個文件的結(jié)尾.
在類中定義一個方法:在Person類中定義一個print的打印方法:
- subprint
- {
- my($self)=@_;
- #printPersoninfo
- printf("Name:%s%s\n\n",$self->firstName,$self->lastName);
- }
要調(diào)用這個方法,類似PHP,只需要:$khurt->print();
$khurt是一個Person的實(shí)例.my($self)=@_;這句意思,是把當(dāng)前的變量賦給$self這個私有的變量.@_是Perl內(nèi)置的一個變量,代表當(dāng)前正在訪問的變量,它是一個全局變量。
構(gòu)造函數(shù)
要創(chuàng)建一個Perl類的實(shí)例,我們需要一個構(gòu)造函數(shù).當(dāng)然,這個構(gòu)造函數(shù)肯定要在相應(yīng)的package中定義.大多數(shù)的Perl程序員把構(gòu)造函數(shù)命
名為new,其實(shí)無論這個函數(shù)叫什么名字,Perl都能接受.
每個Perl對象的實(shí)例說到底都是一個數(shù)據(jù)類型,或者是數(shù)組型,或者是Hash列表型等等.這就象C++中的ADT(AbstractDataType)一樣.
Person的構(gòu)造函數(shù)如下,我們用的是一個Hash的引用作為一個類的實(shí)例:
- #constructor
- subnew{
- my$self={
- _firstName=>undef,
- _lastName=>undef,
- _ssn=>undef,
- _address=>undef
- };
- bless$self,'Person';
- return$self;
- }
這里,我們在Person包中創(chuàng)建了一個叫new的方法,實(shí)際上也就是在Persong類中創(chuàng)建了一個構(gòu)造函數(shù).這個對象的屬性全部都在$self變量中了.bless$self'Person'這句比較重要.bless函數(shù)的第一個參數(shù)是一個變量的引用,第二參數(shù)是一個Perl類名.這個函數(shù)的作用是說明$self變量是屬于Person類的。
要創(chuàng)建一個Person的實(shí)例:
my$khurt=Person->new();
我們還沒有創(chuàng)建任何的訪問方法和錯誤檢查方法.為了讓構(gòu)造函數(shù)更加的可靠和可繼承,將構(gòu)造函數(shù)重寫:
- subnew{
- my($class)=@_;
- my$self={
- _firstName=>undef,
- _lastName=>undef,
- _ssn=>undef,
- _address=>undef
- };
- bless$self,$class;
- return$self;
- }
其它的面向?qū)ο笳Z言有私有變量,保護(hù)變量這些概念,控制了變量的訪問權(quán)限,防止變量被直接改變.Perl沒有私有變量,但是還是可以通過訪問函數(shù)來控制變量的訪問權(quán)限。
【編輯推薦】
- Perl類及創(chuàng)建方法揭秘
- Perl文件句柄概念詳解
- 解析四大Perl操作符用法
- 專家推薦 幾款常用Perl開發(fā)工具
- 學(xué)習(xí)筆記 Perl數(shù)字與字符串間的自動轉(zhuǎn)換
標(biāo)題名稱:術(shù)語匯編 Perl類概念詳解
文章網(wǎng)址:http://m.5511xx.com/article/cddgpoe.html


咨詢
建站咨詢
