第三章类、对象和变量
类定义:
ruby 代码
- class Song
- def initialize(name,artist,duration)
- @name=name
- @artist=artist
- @duration=duration
- end
- end
当使用Song.new创建一个Song的对象时,首先分配一些内存来保存为初始化的对象,然后调用对象的initialize方法,并把调用new 时所使用的参数传入该方法
继承自Object的方法:
inspect:默认将对象的ID和实例变量格式化。
to_s:Ruby标准消息,返回对象的字符串表示,默认为对象的ID
为类添加新特性:在Ruby中类不是封闭的,可以向一个已有的类中添加方法,当为类添加新方法时,只需打开类的定义,添加新方法,原有的方法依然存在。
例如要在Song类中重写to_s方法,只需向Song中添加一个to_s方法,而不必重写原来的类。
ruby 代码
- class Song
- def to_s
- "Song: #@name--#@artist (#@duration)"
- end
- end
这时Song就重写了to_s方法,而原有的方法都不变。
继承
通过关键字"小于号"实现继承
super关键字:在方法中使用super而不使用参数时,Ruby向当前对象的父类发送一个消息,要求调用父类中的同名方法。
属性
一个对象的外部状态叫做属性,就是访问和操作对象的状态的方法。
访问对象状态,类似于Java的getter方法,操作对象状态,类似于Java的setter方法。
getter和setter
- class Song
-
- def name
- @name
- end
- def artist
- @artist
- end
- def duration
- @duration
- end
-
- def name=(new_name)
- @name=new_name
- end
- def artist=(new_artist)
- @artist=new_artist
- end
- def duration=(new_duration)
- @duration=new_duration
- end
- end
此外,Rubby提供了一种方便的快捷方式:
ruby 代码
- class Song
- attr_reader :name, :artist, :duration
- attr_writer :name, :artist, :duration
- end
类变量和类方法
类变量被类的所有对象所共享,相当于Java的static变量,类变量由两个@开头,在使用之前必需被初始化。
类变量
- class Song
- @@plays=0
- def play
- @@plays+=1
- end
- def Song.closeall
- @@plays=0
- end
- end
@@plays是Song类的一个类变量,每创建一个Song对象并调用play方法时,@@plays加一,@@plays依赖于Song类,而不是Song的对象。
类方法相当于Java中的static方法,它被类所使用。类方法的定义通过在方法名之前放置一个类名和句点来定义
Singleton
ruby 代码
- class MyLogger
- private:new
- @@logger=nil
- def MyLogger.create
- @@logger=new unless @@logger
- @@logger
- end
- end
分享到:
相关推荐
詹姆斯·布里特,ruby-doc.org网站管理员,表示第一版的《Programming Ruby》就是一本智慧、优雅且充满趣味的书,而第二版更是超越前者,成为Ruby学习者的首选资料。 ### 学习Ruby的意义 查德·福勒(Chad Fowler...
内含以下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》是学习和精通Ruby编程的必备参考书,无论你是初学者还是经验丰富的开发者,都能从中受益匪浅。通过深入阅读和实践,你将能够熟练地运用Ruby进行各种开发工作,并领略到Ruby优雅而强大...
《Programming Ruby》被誉为是学习Ruby语言的最佳指南,这本书在IT界享有极高的声誉,被亲切地称为“镐头书”,其价值与影响力无远弗届。本书不仅详细介绍了Ruby语言的核心概念、语法结构以及编程实践,还深入探讨了...
《Programming Ruby》是一本经典的Ruby编程语言教程,中文第二版为中国的程序员提供了深入学习Ruby的宝贵资源。这本书的源代码下载对于读者来说是极其有用的,因为它允许读者在实践中探索和理解书中所阐述的概念。...
通过阅读《Programming Ruby》,读者不仅可以学习到Ruby的基本语法,还能深入了解其背后的哲学和设计思想,从而成为一名高效的Ruby开发者。书中的实例和练习将帮助你更好地掌握Ruby编程,提升解决问题的能力。
该压缩包包含了两部分:Programming Ruby.chm是书中的内容,以帮助读者系统地学习Ruby语言。CHM文件是一种常见的Windows帮助文档格式,包含了HTML页面、索引和图像,方便用户在电子设备上阅读。它通常组织成章节结构...
《Programming Ruby 1.9 (3rd edition)》是一本专为程序员编写的关于Ruby语言的权威指南,这本书的第三版详细介绍了Ruby 1.9版本的语言特性、库以及编程实践。Ruby是一种动态、面向对象的脚本语言,以其简洁、优雅的...
3. 书籍的重要性:《Programming Ruby》被广泛认为是学习Ruby的最佳入门书籍。多位Ruby社区的重要人物如Mike Clark和Rich Kilmer等都表示,此书让他们对Ruby有了深入的了解,并在实践中获得了丰富的编程经验。 4. ...
PROGRAMMING+RUBY中文版 PROGRAMMING+RUBY中文版 PROGRAMMING+RUBY中文版
Programming Ruby中文版 (第二版).pdf
2. **面向对象编程**:Ruby是彻头彻尾的面向对象语言,每个值都是一个对象,包括基本类型。书中会讲解类、对象、继承、模块、多态性等概念,以及如何使用Ruby进行面向对象设计。 3. **块、迭代器与闭包**:Ruby中的...
《Programming Ruby中文版第二版》是一本专注于Ruby编程语言的权威指南,对于想要深入学习和理解Ruby编程的读者来说,是一本不可多得的资源。Ruby作为一种动态、面向对象的编程语言,以其简洁、优雅的语法和强大的元...
Programming Ruby是关于Ruby语言的一本权威著作,也被称为PickAxe Book(镐头书,由封面上的工具得名)。本书是它的第2版,其中包括超过200页的新内容,以及对原有内容的修订,涵盖了Ruby 1.8中新的和改进的特性以及...
这份"Ruby学习资料(含参考手册和Programming Ruby)-中文.rar"压缩包包含了一系列的资源,帮助初学者和进阶者深入理解Ruby语言。 首先,"ruby中文文档(含参考手册和Programming Ruby).chm"是一个综合性的中文参考...
Programming Ruby中文版 (第二版).pdf part1(有4部分)
《Programming Ruby》英文chm版计算机电子书下载-The Pragmatic Programmer's Guide,学习ruby一定要研究一下这本《Programming Ruby》电子书Ruby是一种跨平台、面向对象的动态类型编程语言。Ruby体现了表达的一致性...