照例可以先看端程序
class Person
def initialize( name,age=18 )
@name = name
@age = age
@motherland = "China"
end
def talk
puts "my name is "+@name+", age is "+@age.to_s
if @motherland == "China"
puts "I/'m Chinese."
else
puts "I/'m foreigner."
end
end
attr_writer :motherland
end
p1=Person.new("kaichuan",20)
p1.talk
p2=Person.new("Ben")
p2.motherland="ABC"
p2.talk
程序运行结果
my name is kaichuan, age is 20
I'm Chinese.
my name is Ben, age is 18
I'm foreigner.
>Exit code: 0
有过面向对象编程语言经历的童鞋很容易可以看明白,但是里面值的一提的是这句:“attr_writer :motherland”
这句话相当于我们面向对象编程语言的set方法,也可以这样写
def motherland=(value)
return @motherland =value
end
那么相应的get方法为 attr_ reader :motherland
相当于
def motherland
return @motherland
end
相应的 attr_accessor :motherland 相当于attr_reader:motherland; attr_writer :motherland