以下是代码:
class Movie
def initialize(title, rank=0)
@title = title
@rank = rank
end
def to_s
"#{@title} has a rank of #{@rank}"
end
def thumbs_up
@rank += 1
end
def thumbs_down
@rank -= 1
end
end
class Playlist
def initialize(name)
@name = name
@movies = []
end
def add_movie(movie)
@movies << movie
end
def play
puts "#{@name}'s playlist:"
@movies.each do |movie|
movie.thumbs_up
puts movie
end
end
end`
我的问题是关于thumbs_up。这段代码很有用,但我很好奇如何在播放列表类的play方法中访问竖起大拇指。这是因为添加到数组的电影是Movie的一个实例,因此可以调用thumbs_up吗?如果是这样,奇怪的是,可以在不同的类中调用该方法。
感谢。
答案 0 :(得分:1)
thumbs_up
是public
方法,因此,无论调用发生在何处,都可以从Movie
实例调用。
答案 1 :(得分:1)
这并不奇怪。 thumbs_up
是Movie类中对象的公共方法,因此无论电影对象驻留在哪里,都可以在其上调用thumbs_up
。
该方法是Movie对象的特征之一,它由方法和状态组成(状态是存储在类对象中的信息,在实例变量中)。