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

實例解析Perl繼承用法

開發 架構
Perl語言中Perl繼承的概念你是否了解,這里向大家簡單介紹一下,類方法通過@ISA數組Perl繼承,變量的Perl繼承必須明確設定。

本文和大家重點討論一下Perl繼承的概念和用法,繼承簡單的說就是一個類繼承另一個類后,可以使用被繼承類的方法。希望本文的介紹能讓你有所收獲。

Perl繼承

類方法通過@ISA數組Perl繼承,變量的Perl繼承必須明確設定。下例創建兩個類Bean.pm和Coffee.pm,其中Coffee.pmPerl繼承Bean.pm的一些功能。此例演示如何從基類(或稱超類)Perl繼承實例變量,其方法為調用基類的構造函數并把自己的實例變量加到新對象中。
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;  

此類中,用$this變量設置一個匿名哈希表,將'Bean'類型設為'Colombian'。方法setBeanType()用于改變'Bean'類型,它使用$class引用獲得對對象哈希表的訪問。
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;語句包含了Bean.pm文件和所有相關函數,方法setCoffeeType()用于設置局域變量$class->{'Coffee'}的值。在構造函數new()中,$this指向Bean.pm返回的匿名哈希表的指針,而不是在本地創建一個,下面兩個語句分別為創建不同的哈希表從而與Bean.pm構造函數創建的哈希表無關的情況和Perl繼承的情況:
my$this={};#非Perl繼承
my$this=$theSuperClass->new();#Perl繼承

下面代碼演示如何調用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";  

該代碼的結果輸出如下:

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


上述代碼中,先輸出對象創建時哈希表中索引為'Bean'和'Coffee'的值,然后調用各成員函數改變值后再輸出。

【編輯推薦】

  1. 構造函數中Perl方法用法解析
  2. Perl文件句柄概念詳解
  3. 解析四大Perl操作符用法
  4. 淺析Perl面向對象編程用法
  5. Perl標量轉換函數用法指南

 

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

2010-07-16 08:47:53

Perl if語句

2010-07-15 15:54:10

Perl守護進程

2010-07-23 13:46:27

Perl語言

2010-07-13 13:49:43

Perl foreac

2010-07-15 10:22:23

Perl控制結構

2010-07-16 16:56:01

Perl構造函數

2010-07-19 14:13:41

Perl函數

2010-07-16 13:10:36

Perl哈希表

2010-07-14 15:32:21

Perl轉義字符

2010-07-20 15:02:20

Perl數組

2010-07-21 13:59:59

Perl引用

2010-07-19 14:37:01

Perl進程啟動函數

2010-07-13 09:23:00

Perl變量

2010-07-15 10:47:22

Perl命令行

2010-07-26 15:17:51

Perl解析XML文件

2010-07-14 12:39:30

Prel字符串

2010-07-26 14:06:43

Perl substr

2010-07-14 15:51:30

Perl 字符匹配

2010-07-19 14:20:57

Perl函數

2010-07-16 13:45:41

Perl引用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费在线观看一区二区三区 | 国产成人精品网站 | 成年人在线观看 | 一区二区三区成人 | 91看片网 | 狠狠操av| 国产精品亚洲综合 | 欧美视频 亚洲视频 | 99久久夜色精品国产亚洲96 | 97伊人 | 亚洲毛片在线观看 | 在线免费观看黄网 | 亚洲精品一区二区三区四区高清 | 九九爱这里只有精品 | 久久精品小视频 | 国产日产久久高清欧美一区 | 91欧美 | 青青久久av北条麻妃海外网 | 五月天婷婷丁香 | 美女三区 | 99re免费 | 久久久999免费视频 999久久久久久久久6666 | 久久av一区 | 在线看日韩 | 免费欧美视频 | 精产国产伦理一二三区 | 国内精品视频在线观看 | 国产91在线 | 中日 | 欧美一级免费片 | 久久久久久毛片免费观看 | 在线午夜 | 天天夜碰日日摸日日澡 | 亚洲欧美激情精品一区二区 | 国产精品成人一区二区 | 黄色小视频入口 | 欧美中文字幕一区二区三区亚洲 | 亚洲精品黄色 | 99精品免费久久久久久日本 | 欧美精品乱码99久久影院 | 国产av毛片| 在线四虎 |