Ruby 语言与Python和Perl的一个很大区别,在于Ruby中,所有的实例变量都是在类中完全私有的,只能通过accessor 方法来进行变量访问,引用一段代码来说明具体的使用方法:
class Rectangle
attr_accessor :width
attr_accessor :height
attr_accessor :width2
attr_accessor :height2
def initialize(wdth, hgt)
@width = wdth
@height = hgt
end
def area()
return @width * @height
end
def area2()
return @width2 * @height2
end
end
r = Rectangle.new(2,3)
r.width = 5 # give samename's variable value
r.height = 5
puts r.area() #outputs is 25
r.width2 = 6 # not samename's variable create
r.height2 = 6
puts r.area2() # outputs is 36
attr_reader: 实例变量只读
attr_writer: 实例变量可写
attr_accessor: 变量可读可写