Ruby getter和setter

Ruby getter和setter教程

为了在类的外部读取类中已定义的变量,我们可以通过定义访问器(getter)方法来访问。与用于访问变量值的访问器方法类似,Ruby 提供了一种在类的外部将参数传入类中已定义的变量,也就是所谓的设置器方法。

由于两种方法非常常用,Ruby 定义了 attr_accessor :variable_name、attr_reader :variable_name、attr_writer :variable_name 三种属性声明方法。其中:accessor=reader+writer。

同时注意:变量名前一定要带 : ,变量名之间要用 , 分割。

案例

getter使用

访问器 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}"

程序运行后,控制台输出如下:

06_Ruby访问器getter.png

我们定义了两个 getter 访问器。

setter使用

设置器 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}"

程序运行后,控制台输出如下:

07_Ruby设置器setter.png

使用设置器 setter 可以修改类属性的值。

Ruby getter和setter总结

为了在类的外部读取类中已定义的变量,我们可以通过定义访问器(getter)方法来访问。与用于访问变量值的访问器方法类似,Ruby 提供了一种在类的外部将参数传入类中已定义的变量,也就是所谓的设置器方法。