class Song
??? include Comparable?? ##
include
和extend
有什么不同???? ??? ??? ??? ??? ??? ??? ??? ???? ##include
負責將
module
插入到類(模塊)中,這樣就能以函數的形式來調用方法;而
extend
負責將
module
插入到對象(實例)中,這樣就添加了特殊方法。
??? @@plays = 0?? ?? ?? ?? ##類變量,必須初始化
??? attr_reader :name, :artist, :duration?? ##分別為@name,@artist,@duration設置可讀的屬性
??? attr_writer :duration?? ?? ?? ?? ?? ?? ?? ?? ?? ##對@duration設置可寫的屬性
???
def initialize(name, artist, duration)
@name = name
@artist = artist
@duration = duration
@plays = 0 ##對象變量
end
def to_s
"Song: #@name--#@artist (#@duration)"
end
def name ##函數式的公開所有變量
@name
end
def artist
@artist
end
def duration
@duration
end