访问器方法
虽然这些类在冒险游戏中运行的足够好,但它们仍然是累赘的,因为设置了大量的 get 和 set 访问器方法。让我们看看有什么补救措施。
替换掉 @description
实例变量的两个不同的方法,get_description
和 set_description
。
puts(t1.get_description)
t1.set_description("Some description")
取值和赋值也许更好一些,对于一个简单的变量使用下面的方式进行取值和赋值:
puts(t1.description)
t1.description = "Some description"
为了能够做到这一点,我们需要修改 Treasure 类的定义。实现这一点的方法是重写 @description
的访问器方法:
def description
return @description
end
def description=(aDescription)
@description = aDescription
end
accessors1.rb
我已经在 accessors1.rb 中添加了类似于上面的访问器。get 访问器被称为 description
,set 访问器被称为 description=
(即就是,将等号(=)附加到 get 访问器方法名后面)。现在,就可以将一个新的字符串进行赋值了:
t.description = "a bit faded and worn around the edges"
你可以像这样取值:
puts(t.description)