日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
實(shí)例解析Perl繼承用法

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

目前創(chuàng)新互聯(lián)已為近1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、網(wǎng)站改版維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、平樂網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

Perl繼承

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

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

此類中,用$this變量設(shè)置一個(gè)匿名哈希表,將'Bean'類型設(shè)為'Colombian'。方法setBeanType()用于改變'Bean'類型,它使用$class引用獲得對(duì)對(duì)象哈希表的訪問。
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)建的哈希表無關(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ù)改變值后再輸出。


網(wǎng)頁(yè)名稱:實(shí)例解析Perl繼承用法
文章來源:http://www.dlmjj.cn/article/dpjdgji.html