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

實(shí)例解析Perl繼承用法

開(kāi)發(fā) 架構(gòu)
Perl語(yǔ)言中Perl繼承的概念你是否了解,這里向大家簡(jiǎn)單介紹一下,類(lèi)方法通過(guò)@ISA數(shù)組Perl繼承,變量的Perl繼承必須明確設(shè)定。

本文和大家重點(diǎn)討論一下Perl繼承的概念和用法,繼承簡(jiǎn)單的說(shuō)就是一個(gè)類(lèi)繼承另一個(gè)類(lèi)后,可以使用被繼承類(lèi)的方法。希望本文的介紹能讓你有所收獲。

Perl繼承

類(lèi)方法通過(guò)@ISA數(shù)組Perl繼承,變量的Perl繼承必須明確設(shè)定。下例創(chuàng)建兩個(gè)類(lèi)Bean.pm和Coffee.pm,其中Coffee.pmPerl繼承Bean.pm的一些功能。此例演示如何從基類(lèi)(或稱(chēng)超類(lèi))Perl繼承實(shí)例變量,其方法為調(diào)用基類(lèi)的構(gòu)造函數(shù)并把自己的實(shí)例變量加到新對(duì)象中。
Bean.pm代碼如下:

  1. packageBean;  
  2. requireExporter;  
  3. @ISA=qw(Exporter);  
  4. @EXPORT=qw(setBeanType);  
  5.  
  6. subnew{  
  7. my$type=shift;  
  8. my$this={};  
  9. $this->{'Bean'}='Colombian';  
  10. bless$this,$type;  
  11. return$this;  
  12. }  
  13.  
  14. #  
  15. #Thissubroutinesetstheclassname  
  16. subsetBeanType{  
  17. my($class,$name)=@_;  
  18. $class->{'Bean'}=$name;  
  19. print"Setbeanto$name\n";  
  20. }  
  21. 1;  

此類(lèi)中,用$this變量設(shè)置一個(gè)匿名哈希表,將'Bean'類(lèi)型設(shè)為'Colombian'。方法setBeanType()用于改變'Bean'類(lèi)型,它使用$class引用獲得對(duì)對(duì)象哈希表的訪(fǎng)問(wèn)。
Coffee.pm代碼如下:

  1. 1#  
  2. 2#TheCoffee.pmfiletoillustrateinheritance.  
  3. 3#  
  4. 4packageCoffee;  
  5. 5requireExporter;  
  6. 6requireBean;  
  7. 7@ISA=qw(Exporter,Bean);  
  8. 8@EXPORT=qw(setImports,declareMain,closeMain);  
  9. 9#  
  10. 10#setitem  
  11. 11#  
  12. 12subsetCoffeeType{  
  13. 13my($class,$name)=@_;  
  14. 14$class->{'Coffee'}=$name;  
  15. 15print"Setcoffeetypeto$name\n";  
  16. 16}  
  17. 17#  
  18. 18#constructor  
  19. 19#  
  20. 20subnew{  
  21. 21my$type=shift;  
  22. 22my$this=Bean->new();#####<-LOOKHERE!!!####  
  23. 23$this->{'Coffee'}='Instant';#unlesstoldotherwise  
  24. 24bless$this,$type;  
  25. 25return$this;  
  26. 26}  
  27. 271;  

 第6行的requireBean;語(yǔ)句包含了Bean.pm文件和所有相關(guān)函數(shù),方法setCoffeeType()用于設(shè)置局域變量$class->{'Coffee'}的值。在構(gòu)造函數(shù)new()中,$this指向Bean.pm返回的匿名哈希表的指針,而不是在本地創(chuàng)建一個(gè),下面兩個(gè)語(yǔ)句分別為創(chuàng)建不同的哈希表從而與Bean.pm構(gòu)造函數(shù)創(chuàng)建的哈希表無(wú)關(guān)的情況和Perl繼承的情況:
my$this={};#非Perl繼承
my$this=$theSuperClass->new();#Perl繼承

下面代碼演示如何調(diào)用Perl繼承的方法:

  1. 1#!/usr/bin/perl  
  2. 2push(@INC,'pwd');  
  3. 3useCoffee;  
  4. 4$cup=newCoffee;  
  5. 5print"\n--------------------Initialvalues------------\n";  
  6. 6print"Coffee:$cup->{'Coffee'}\n";  
  7. 7print"Bean:$cup->{'Bean'}\n";  
  8. 8print"\n--------------------ChangeBeanType----------\n";  
  9. 9$cup->setBeanType('Mixed');  
  10. 10print"BeanTypeisnow$cup->{'Bean'}\n";  
  11. 11print"\n------------------ChangeCoffeeType----------\n";  
  12. 12$cup->setCoffeeType('Instant');  
  13. 13print"Typeofcoffee:$cup->{'Coffee'}\n";  

該代碼的結(jié)果輸出如下:

  1. --------------------Initialvalues------------  
  2. Coffee:Instant  
  3. Bean:Colombian  
  4. --------------------ChangeBeanType----------  
  5. SetbeantoMixed  
  6. BeanTypeisnowMixed  
  7. ------------------ChangeCoffeeType----------  
  8. SetcoffeetypetoInstant  
  9. Typeofcoffee:Instant 


上述代碼中,先輸出對(duì)象創(chuàng)建時(shí)哈希表中索引為'Bean'和'Coffee'的值,然后調(diào)用各成員函數(shù)改變值后再輸出。

【編輯推薦】

  1. 構(gòu)造函數(shù)中Perl方法用法解析
  2. Perl文件句柄概念詳解
  3. 解析四大Perl操作符用法
  4. 淺析Perl面向?qū)ο缶幊逃梅?/a>
  5. Perl標(biāo)量轉(zhuǎn)換函數(shù)用法指南

 

責(zé)任編輯:佚名 來(lái)源: csdn.net
相關(guān)推薦

2010-07-16 08:47:53

Perl if語(yǔ)句

2010-07-15 15:54:10

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

2010-07-23 13:46:27

Perl語(yǔ)言

2010-07-13 13:49:43

Perl foreac

2010-07-16 13:10:36

Perl哈希表

2010-07-14 15:32:21

Perl轉(zhuǎn)義字符

2010-07-19 14:13:41

Perl函數(shù)

2010-07-15 10:22:23

Perl控制結(jié)構(gòu)

2010-07-16 16:56:01

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

2010-07-21 13:59:59

Perl引用

2010-07-20 15:02:20

Perl數(shù)組

2010-07-14 12:39:30

Prel字符串

2010-07-13 09:23:00

Perl變量

2010-07-26 15:17:51

Perl解析XML文件

2010-07-15 10:47:22

Perl命令行

2010-07-19 14:37:01

Perl進(jìn)程啟動(dòng)函數(shù)

2010-07-26 14:06:43

Perl substr

2010-07-14 15:51:30

Perl 字符匹配

2010-07-16 13:45:41

Perl引用

2010-07-19 14:20:57

Perl函數(shù)
點(diǎn)贊
收藏

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