`
lidxgz
  • 浏览: 11788 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Programming Ruby 学习笔记(2)

    博客分类:
  • Ruby
阅读更多

第三章类、对象和变量

类定义:

ruby 代码
  1. class Song   
  2. def initialize(name,artist,duration)   
  3. @name=name   
  4. @artist=artist   
  5. @duration=duration   
  6. end  
  7. end  

当使用Song.new创建一个Song的对象时,首先分配一些内存来保存为初始化的对象,然后调用对象的initialize方法,并把调用new 时所使用的参数传入该方法

继承自Object的方法:

inspect:默认将对象的ID和实例变量格式化。

to_s:Ruby标准消息,返回对象的字符串表示,默认为对象的ID

为类添加新特性:在Ruby中类不是封闭的,可以向一个已有的类中添加方法,当为类添加新方法时,只需打开类的定义,添加新方法,原有的方法依然存在。

例如要在Song类中重写to_s方法,只需向Song中添加一个to_s方法,而不必重写原来的类。

ruby 代码
  1. class Song   
  2. def to_s   
  3. "Song: #@name--#@artist (#@duration)"  
  4. end  
  5. end  

这时Song就重写了to_s方法,而原有的方法都不变。

继承

通过关键字"小于号"实现继承

super关键字:在方法中使用super而不使用参数时,Ruby向当前对象的父类发送一个消息,要求调用父类中的同名方法。

属性

一个对象的外部状态叫做属性,就是访问和操作对象的状态的方法。

访问对象状态,类似于Java的getter方法,操作对象状态,类似于Java的setter方法。

getter和setter
  1. class Song   
  2.   #访问属性的方法,类似于Java中的getter   
  3.   def name   
  4.     @name  
  5.   end  
  6.   def artist   
  7.     @artist  
  8.   end  
  9.   def duration   
  10.     @duration  
  11.   end  
  12.   #设置属性值的方法,类似于Java中的setter   
  13.   def name=(new_name)   
  14.     @name=new_name   
  15.   end  
  16.   def artist=(new_artist)   
  17.     @artist=new_artist   
  18.   end  
  19.   def duration=(new_duration)   
  20.     @duration=new_duration   
  21.   end     
  22. end  

此外,Rubby提供了一种方便的快捷方式:

ruby 代码
  1. class Song   
  2.     attr_reader :name:artist:duration  
  3.     attr_writer :name:artist:duration  
  4.   end  

类变量和类方法

类变量被类的所有对象所共享,相当于Java的static变量,类变量由两个@开头,在使用之前必需被初始化。

类变量
  1. class Song   
  2.   @@plays=0   
  3.   def play   
  4.     @@plays+=1   
  5.   end  
  6.   def Song.closeall   
  7.     @@plays=0   
  8.   end  
  9. end  

@@plays是Song类的一个类变量,每创建一个Song对象并调用play方法时,@@plays加一,@@plays依赖于Song类,而不是Song的对象。

类方法相当于Java中的static方法,它被类所使用。类方法的定义通过在方法名之前放置一个类名和句点来定义

Singleton

ruby 代码
  1. class MyLogger   
  2.   private:new  
  3.     @@logger=nil  
  4.   def MyLogger.create   
  5.     @@logger=new unless @@logger  
  6.     @@logger  
  7.   end  
  8. end  
分享到:
评论

相关推荐

    Programming Ruby - The Pragmatic Programmer's Guide, 2nd Edition (2005) [annotated]

    詹姆斯·布里特,ruby-doc.org网站管理员,表示第一版的《Programming Ruby》就是一本智慧、优雅且充满趣味的书,而第二版更是超越前者,成为Ruby学习者的首选资料。 ### 学习Ruby的意义 查德·福勒(Chad Fowler...

    ruby学习资源(Programming Ruby, Learning Ruby, The Ruby Way)

    内含以下4个文档: 1、Addison.Wesley.The.Ruby.Way.2nd.Edition.Oct.2006.chm 2、O'Reilly.Learning.Ruby.May.2007.chm 3、Programming Ruby 2e.pdf 4、ruby中文文档.chm

    Programming ruby.pdf

    总的来说,《Programming Ruby》是学习和精通Ruby编程的必备参考书,无论你是初学者还是经验丰富的开发者,都能从中受益匪浅。通过深入阅读和实践,你将能够熟练地运用Ruby进行各种开发工作,并领略到Ruby优雅而强大...

    Programming Ruby.pdf

    《Programming Ruby》被誉为是学习Ruby语言的最佳指南,这本书在IT界享有极高的声誉,被亲切地称为“镐头书”,其价值与影响力无远弗届。本书不仅详细介绍了Ruby语言的核心概念、语法结构以及编程实践,还深入探讨了...

    《Programming Ruby》中文第2版源代碼下載

    《Programming Ruby》是一本经典的Ruby编程语言教程,中文第二版为中国的程序员提供了深入学习Ruby的宝贵资源。这本书的源代码下载对于读者来说是极其有用的,因为它允许读者在实践中探索和理解书中所阐述的概念。...

    Programming Ruby

    通过阅读《Programming Ruby》,读者不仅可以学习到Ruby的基本语法,还能深入了解其背后的哲学和设计思想,从而成为一名高效的Ruby开发者。书中的实例和练习将帮助你更好地掌握Ruby编程,提升解决问题的能力。

    Programming Ruby (English Version) and Source Code

    该压缩包包含了两部分:Programming Ruby.chm是书中的内容,以帮助读者系统地学习Ruby语言。CHM文件是一种常见的Windows帮助文档格式,包含了HTML页面、索引和图像,方便用户在电子设备上阅读。它通常组织成章节结构...

    Programming Ruby 1.9 (3rd edition)和源码

    《Programming Ruby 1.9 (3rd edition)》是一本专为程序员编写的关于Ruby语言的权威指南,这本书的第三版详细介绍了Ruby 1.9版本的语言特性、库以及编程实践。Ruby是一种动态、面向对象的脚本语言,以其简洁、优雅的...

    Programming Ruby 2nd.pdf

    3. 书籍的重要性:《Programming Ruby》被广泛认为是学习Ruby的最佳入门书籍。多位Ruby社区的重要人物如Mike Clark和Rich Kilmer等都表示,此书让他们对Ruby有了深入的了解,并在实践中获得了丰富的编程经验。 4. ...

    PROGRAMMING+RUBY中文版

    PROGRAMMING+RUBY中文版 PROGRAMMING+RUBY中文版 PROGRAMMING+RUBY中文版

    Programming Ruby中文版 (第二版).pdf part2

    Programming Ruby中文版 (第二版).pdf

    Programming Ruby中文版第二版[高清扫描版][带书签]和Programming.Ruby-2nd[高清文字版][带书签].pdf

    2. **面向对象编程**:Ruby是彻头彻尾的面向对象语言,每个值都是一个对象,包括基本类型。书中会讲解类、对象、继承、模块、多态性等概念,以及如何使用Ruby进行面向对象设计。 3. **块、迭代器与闭包**:Ruby中的...

    programming+ruby中文版第二版

    《Programming Ruby中文版第二版》是一本专注于Ruby编程语言的权威指南,对于想要深入学习和理解Ruby编程的读者来说,是一本不可多得的资源。Ruby作为一种动态、面向对象的编程语言,以其简洁、优雅的语法和强大的元...

    Programming Ruby中文版(第二版)

    Programming Ruby是关于Ruby语言的一本权威著作,也被称为PickAxe Book(镐头书,由封面上的工具得名)。本书是它的第2版,其中包括超过200页的新内容,以及对原有内容的修订,涵盖了Ruby 1.8中新的和改进的特性以及...

    Ruby学习资料(含参考手册和Programming Ruby)-中文.rar

    这份"Ruby学习资料(含参考手册和Programming Ruby)-中文.rar"压缩包包含了一系列的资源,帮助初学者和进阶者深入理解Ruby语言。 首先,"ruby中文文档(含参考手册和Programming Ruby).chm"是一个综合性的中文参考...

    Programming Ruby中文版 (第二版).pdf part1(有4部分)

    Programming Ruby中文版 (第二版).pdf part1(有4部分)

    《Programming Ruby》(chm)

    《Programming Ruby》英文chm版计算机电子书下载-The Pragmatic Programmer's Guide,学习ruby一定要研究一下这本《Programming Ruby》电子书Ruby是一种跨平台、面向对象的动态类型编程语言。Ruby体现了表达的一致性...

Global site tag (gtag.js) - Google Analytics