我最近学会了如何创建类,虽然我不是 ENTIRELY 确定我应该在哪里以及为什么要使用它们。 我使用它们来创建具有类似方法/属性的对象。
我尝试制作一个禁用密码,但我偶然发现了一个无法找到答案的问题。
class Person
def initialize(name,health)
@name = name
@hp = health
end
def kick
@hp -= 1
if (@hp <= 0)
puts "#{@name} got REKT!"
end
end
end
#Friends
michael = Person.new("Michael", 10)
10.times { michael.kick }
即使此代码有效,我也想知道是否可以在课外使用/调用mihchael的hp?也许有点像哈希? michael[@hp]
?但即使我将hp设置为全局变量,这也不起作用。
是否所有检查对象属性的if / else语句都在类中?
非常感谢
答案 0 :(得分:5)
在Ruby中执行此操作的标准方法是创建一个访问器:
class Person
attr_reader :name
attr_reader :hp
end
然后在课外,您可以调用以下内容:
puts "#{michael.name} has only #{michael.hp} HP left"
创建对象的原因是将代码和数据组织到逻辑上下文和容器中。