自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

術(shù)語匯編 Perl類概念詳解

開發(fā) 架構(gòu)
本文向大家簡單介紹一下Perl類的概念,大多數(shù)人其實(shí)都沒有注意到,Perl也是一種面向?qū)ο蟮木幊陶Z言,但它又和傳統(tǒng)的面向?qū)ο蟮恼Z言:如C++,Java完全不一樣.

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

Perl類

大多數(shù)人其實(shí)都沒有注意到,Perl也是一種面向?qū)ο蟮木幊陶Z言,但它又和傳統(tǒng)的面向?qū)ο蟮恼Z言:如C++,Java完全不一樣.要做好在Perl下的面向?qū)ο缶幊?你只要簡單的用LarryWall提出Perl面向?qū)ο缶幊痰臉?biāo)準(zhǔn)就可以了。

這里舉一個(gè)簡單的例子:Person類代表一個(gè)人,包含一個(gè)人的一些簡單的信息:名字,社會(huì)保障號(hào)等。

要?jiǎng)?chuàng)建一個(gè)Perl類,首先我們先要?jiǎng)?chuàng)建一個(gè)包--package.一個(gè)package是一個(gè)自包含的單元,它包含一些用戶定義的變量和方法,類似于Java中的Package和C#中的namespace,也起到一個(gè)命名空間的作用.不同命名空間下的相同名字的變量,相互之間是不沖突的。

聲明一個(gè)Perl類:packagePerson;

Person的作用域一直到這個(gè)文件的結(jié)尾.

在類中定義一個(gè)方法:在Person類中定義一個(gè)print的打印方法:

  1. subprint  
  2. {  
  3. my($self)=@_;  
  4. #printPersoninfo  
  5. printf("Name:%s%s\n\n",$self->firstName,$self->lastName);  
  6. }  
  7.  

 要調(diào)用這個(gè)方法,類似PHP,只需要:$khurt->print();

$khurt是一個(gè)Person的實(shí)例.my($self)=@_;這句意思,是把當(dāng)前的變量賦給$self這個(gè)私有的變量.@_是Perl內(nèi)置的一個(gè)變量,代表當(dāng)前正在訪問的變量,它是一個(gè)全局變量。


構(gòu)造函數(shù)

要?jiǎng)?chuàng)建一個(gè)Perl類的實(shí)例,我們需要一個(gè)構(gòu)造函數(shù).當(dāng)然,這個(gè)構(gòu)造函數(shù)肯定要在相應(yīng)的package中定義.大多數(shù)的Perl程序員把構(gòu)造函數(shù)命

名為new,其實(shí)無論這個(gè)函數(shù)叫什么名字,Perl都能接受.

每個(gè)Perl對(duì)象的實(shí)例說到底都是一個(gè)數(shù)據(jù)類型,或者是數(shù)組型,或者是Hash列表型等等.這就象C++中的ADT(AbstractDataType)一樣.

Person的構(gòu)造函數(shù)如下,我們用的是一個(gè)Hash的引用作為一個(gè)類的實(shí)例:

  1. #constructor  
  2. subnew{  
  3. my$self={  
  4. _firstName=>undef,  
  5. _lastName=>undef,  
  6. _ssn=>undef,  
  7. _address=>undef  
  8. };  
  9. bless$self,'Person';  
  10. return$self;  

 這里,我們?cè)赑erson包中創(chuàng)建了一個(gè)叫new的方法,實(shí)際上也就是在Persong類中創(chuàng)建了一個(gè)構(gòu)造函數(shù).這個(gè)對(duì)象的屬性全部都在$self變量中了.bless$self'Person'這句比較重要.bless函數(shù)的第一個(gè)參數(shù)是一個(gè)變量的引用,第二參數(shù)是一個(gè)Perl類名.這個(gè)函數(shù)的作用是說明$self變量是屬于Person類的。

要?jiǎng)?chuàng)建一個(gè)Person的實(shí)例:

my$khurt=Person->new();

我們還沒有創(chuàng)建任何的訪問方法和錯(cuò)誤檢查方法.為了讓構(gòu)造函數(shù)更加的可靠和可繼承,將構(gòu)造函數(shù)重寫:

  1. subnew{  
  2. my($class)=@_;  
  3. my$self={  
  4. _firstName=>undef,  
  5. _lastName=>undef,  
  6. _ssn=>undef,  
  7. _address=>undef  
  8. };  
  9. bless$self,$class;  
  10. return$self;  
  11. }  

 其它的面向?qū)ο笳Z言有私有變量,保護(hù)變量這些概念,控制了變量的訪問權(quán)限,防止變量被直接改變.Perl沒有私有變量,但是還是可以通過訪問函數(shù)來控制變量的訪問權(quán)限。

 【編輯推薦】

 

  1. Perl類及創(chuàng)建方法揭秘
  2. Perl文件句柄概念詳解
  3. 解析四大Perl操作符用法
  4. 專家推薦 幾款常用Perl開發(fā)工具
  5. 學(xué)習(xí)筆記 Perl數(shù)字與字符串間的自動(dòng)轉(zhuǎn)換
責(zé)任編輯:佚名 來源: csdn.net
相關(guān)推薦

2010-07-15 15:47:46

Perl守護(hù)進(jìn)程

2010-07-14 11:27:42

Perl多進(jìn)程

2010-07-13 10:21:19

2010-07-19 16:56:56

Perl線程

2010-07-26 16:54:15

Perl引用

2010-07-12 14:23:52

UML公共機(jī)制

2010-07-13 09:02:16

Perl

2010-07-15 17:50:47

Perl模式

2010-07-14 15:05:21

Perl文件句柄

2010-07-16 17:12:58

Perl析構(gòu)函數(shù)

2010-06-02 14:28:23

SVN版本控制

2010-07-13 09:58:51

Perl關(guān)聯(lián)數(shù)組

2010-06-30 14:24:02

UML類圖建模

2010-08-05 14:51:36

AdobeFlex

2010-06-07 13:02:46

Hadoop簡介

2010-09-17 09:19:08

Java API

2010-07-20 16:25:50

Perl正則表達(dá)式

2010-07-27 08:59:19

FlexBuilder

2010-08-10 10:32:02

Flex語言

2010-06-10 18:27:00

UML語言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)