ruby的类

创建类
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,这就是虚拟属性的实质
类变量和类方法:
歌曲具体化为每首不同的歌,对于歌曲来说是一个类,对于具体的歌曲来说,就是类对应的实例,实例有实例方法,例如可以对每个具体的歌曲进行播放..操作,对于歌曲这个类,我们有时候也需要进行操作,譬如计算播放了多少歌曲?这里就需要类变量和类方法来实现了。
类变量以@@开头,并且类变量在使用之前必须进行初始化。


class Song
@@play=0
def initialize(name, artist)
@name=name
@artist=artist
@play=0
end
def play
@play+=1
@@play+=1
"this song #@play plays. Total #@@play plays"
end
end
s1=Song.new("song1","artist1")
s2=Song.new("song2","artist2")
puts s1.play
puts s2.play
puts s1.play
puts s1.play


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值