Chinaunix

标题: 简单的Ruby 类 [打印本页]

作者: 2gua    时间: 2011-07-22 09:54
标题: 简单的Ruby 类
[转帖]来源:Linux社区  作者:cheungmine

建立下面的脚本文件,命名为C:\animals.rb,使用notepad++,选择格式为以UTF-8无BOM格式编码保存:
  1.     #模块声明, 类似于名称空间   
  2.     module Animals  
  3.       
  4.     class Animal  
  5.         # 类的默认构造函数   
  6.         def initialize(name, species)  
  7.             @name=name  
  8.             @species=species  
  9.         end  
  10.          
  11.         #getter for name attribute   
  12.         def name  
  13.             @name  
  14.         end  
  15.       
  16.         #setter for name attribute   
  17.         def  name=(nameVal)  
  18.             @name=nameVal  
  19.         end  
  20.          
  21.         #getter for species attribute   
  22.         def species  
  23.             @species  
  24.         end  
  25.       
  26.         #setter for species attribute   
  27.         def  species=(speciesVal)  
  28.             @species=speciesVal  
  29.         end  
  30.     end  
  31.       
  32.     # 类DogAnimal继承自Animal   
  33.     class DogAnimal < Animal  
  34.         def initialize(voice)  
  35.             super("Dog", "mammal")  
  36.             @voice = voice  
  37.         end  
  38.          
  39.         #getter for voice attribute   
  40.         def voice  
  41.             @voice  
  42.         end  
  43.       
  44.         #setter for voice attribute   
  45.         def  voice=(voiceVal)  
  46.             @voice=voiceVal  
  47.         end  
  48.     end  
  49.       
  50.     end #module Animals   
  51.       
  52.     cat = Animals::Animal.new("Cat", "mammal");  
  53.     dog = Animals::DogAnimal.new("WangWang");  
  54.       
  55.     3.times{  
  56.         print cat.name + " is a " + cat.species + "\n"  
  57.         print dog.name + "'s voice is: " + dog.voice + "\n"  
  58.     }  
  59.       
  60.     =begin  
  61.     #ruby命令行运行脚本   
  62.     ruby c:\animals.rb  
  63.       
  64.     结果显示:  
  65.     Cat is a mammal  
  66.     Dog's voice is WangWang  
  67.     Cat is a mammal  
  68.     Dog's voice is WangWang  
  69.     Cat is a mammal  
  70.     Dog's voice is WangWang  
  71.     =end
复制代码

作者: 2gua    时间: 2011-07-25 13:54
呃,都没人理吗?
作者: bugbugbug3    时间: 2011-07-25 18:12
setter 和 getter 为啥不用attr_accessor ? attr_accessor能更简洁一些。
作者: 2gua    时间: 2011-07-26 08:08
入门的教程吧,先从简单概念阐述起。
作者: sykp241095    时间: 2011-07-26 10:20
写的真好
作者: 2gua    时间: 2011-07-26 12:43
楼上貌似很久没出现了。
作者: sykp241095    时间: 2011-07-26 13:05
,很久没来这了,但期间实践了一些啊,http://huoxy.me/
作者: 2gua    时间: 2011-07-26 20:57
哦,你的博客啊,挺不错的啊。
作者: i_love_ruby    时间: 2011-09-16 17:40
ding




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2