class Cat
def initialize(aName)
@name = aName
end
def set_name(aName)
@name = aName
end
def get_name
return @name
end
end
ruby类似java一样使用get方法获取私有变量的值,使用set方法修改私有变量的值。上述的方法和下面的方法是相同的。
class Cat
def initialize(aName)
@name = aName
end
def name
return @name
end
def name= (aName)
@name = aName
end
end
这样可以直接通过 cat.name获取@name的值,通过cat.name = '**',来修改变量@name的值。
class Bird
def initialize(aName, aSurname)
@name = aName
@surname = aSurname
end
attr_reader :name
attr_writer :name
attr_accessor :surname
end
attr_reader = get_name只能获取变量的值不能修改。attr_writer = set_name可以修改变量的值但不能通过 .变量来获取。 attr_accessor = attr_accessor + attr_writer。