成人免费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-13 13:49:43

Perl foreac

2010-07-23 13:46:27

Perl語言

2010-07-14 15:32:21

Perl轉義字符

2010-07-16 13:10:36

Perl哈希表

2010-07-21 13:59:59

Perl引用

2010-07-15 10:22:23

Perl控制結構

2010-07-16 16:56:01

Perl構造函數

2010-07-19 14:13:41

Perl函數

2010-07-20 15:02:20

Perl數組

2010-07-13 09:23:00

Perl變量

2010-07-14 12:39:30

Prel字符串

2010-07-15 10:47:22

Perl命令行

2010-07-26 15:17:51

Perl解析XML文件

2010-07-26 14:06:43

Perl substr

2010-07-14 15:51:30

Perl 字符匹配

2010-07-19 14:37:01

Perl進程啟動函數

2010-07-19 14:20:57

Perl函數

2010-07-16 13:45:41

Perl引用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品国产欧美一区二区 | 2021狠狠干 | 国内精品久久久久久久影视简单 | 久久不卡日韩美女 | 亚洲一区自拍 | 91成人免费观看 | 成人在线观看欧美 | 手机在线一区二区三区 | 超碰欧美| 国产精品国产三级国产a | 午夜精品一区二区三区在线观看 | 精品无码久久久久久国产 | 亚洲成色777777在线观看影院 | 国产精品高潮呻吟久久久久 | 欧美成人精品激情在线观看 | 日韩欧美一区二区三区在线播放 | 午夜精品视频在线观看 | 日韩av网址在线观看 | 精品国产一区二区三区性色av | 天天插日日操 | 在线观看亚洲欧美 | 91精品国产综合久久久久久蜜臀 | 日韩欧美亚洲一区 | 久久久久久久久久久久久九 | 久久精品一区二区三区四区 | 日韩激情在线 | 日韩精品一区二区三区中文在线 | 亚洲一区二区久久 | 欧美综合一区二区 | chinese中国真实乱对白 | 欧洲一区二区三区 | 成人精品一区 | 免费黄色网址视频 | 天天草天天干天天 | 亚洲日日夜夜 | 国产美女在线看 | 91亚洲一区| 国产激情精品一区二区三区 | 欧美激情久久久 | 日本高清视频网站 | 中文字幕亚洲视频 |