为了在类的外部读取类中已定义的变量,我们可以通过定义访问器(getter)方法来访问。与用于访问变量值的访问器方法类似,Ruby 提供了一种在类的外部将参数传入类中已定义的变量,也就是所谓的设置器方法。
由于两种方法非常常用,Ruby 定义了 attr_accessor :variable_name、attr_reader :variable_name、attr_writer :variable_name 三种属性声明方法。其中:accessor=reader+writer。
同时注意:变量名前一定要带 : ,变量名之间要用 , 分割。
访问器 getter 使用
#!/usr/bin/ruby -w
# -*- coding : utf-8 -*-
puts "HaiCoder(www.haicoder.net)"
class Box
# 构造函数
def initialize(w,h)
@width, @height = w, h
end
# 访问器方法
def printWidth
@width
end
def printHeight
@height
end
end
# 创建对象,初始化盒子的高度与宽度
box = Box.new(10, 20)
# 使用访问器方法
x = box.printWidth()
y = box.printHeight()
puts "盒子宽度 : #{x}"
puts "盒子高度 : #{y}"
程序运行后,控制台输出如下:
我们定义了两个 getter 访问器。
设置器 setter 使用
#!/usr/bin/ruby -w
# -*- coding : utf-8 -*-
puts "HaiCoder(www.haicoder.net)"
class Box
# 构造器方法
def initialize(w,h)
@width, @height = w, h
end
# 访问器方法
def getWidth
@width
end
def getHeight
@height
end
# 设置器方法
def setWidth=(value)
@width = value
end
def setHeight=(value)
@height = value
end
end
# 创建对象
box = Box.new(10, 20)
# 使用设置器方法
box.setWidth = 30
box.setHeight = 50
# 使用访问器方法
x = box.getWidth()
y = box.getHeight()
puts "盒子宽度 : #{x}"
puts "盒子高度 : #{y}"
程序运行后,控制台输出如下:
使用设置器 setter 可以修改类属性的值。
为了在类的外部读取类中已定义的变量,我们可以通过定义访问器(getter)方法来访问。与用于访问变量值的访问器方法类似,Ruby 提供了一种在类的外部将参数传入类中已定义的变量,也就是所谓的设置器方法。