ruby的类
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://fsjoy.blog.51cto.com/318484/63970 |
创建类
class Song def initialize(name, artist, duration)#类似成员方法,初始化实例变量 @name=name @artist=artist @duration=duration end end 继承和消息:
class KaraokeSong < Song def initialize(name, artist, duration, lyrics) #这个类从Song 继承而来 super(name,artist, duration) #可以用super 来调用父类的成员方法 @lyrics=lyrics end end 每个类处理自身实现细节的方法!
对象和属性
attributes!
attr_reader+attr_writer=attr_accessor
使用:
attr_reader :name, :artist, :duration
虚拟属性:
虚拟属性就是通过原来类中的实例属性变换而来的属性
例如:原来歌曲有持续时间,加入原来规定是以s为单位,现在重新定义一个方法,让原来的持续时间从s变成min,这就是虚拟属性的实质
类变量和类方法:
歌曲具体化为每首不同的歌,对于歌曲来说是一个类,对于具体的歌曲来说,就是类对应的实例,实例有实例方法,例如可以对每个具体的歌曲进行播放..操作,对于歌曲这个类,我们有时候也需要进行操作,譬如计算播放了多少歌曲?这里就需要类变量和类方法来实现了。
类变量以@@开头,并且类变量在使用之前必须进行初始化。
本文出自 “李骥平” 博客,请务必保留此出处http://fsjoy.blog.51cto.com/318484/63970 本文出自 51CTO.COM技术博客 |


fsjoy1983
博客统计信息
热门文章
最新评论
友情链接
