attr_reader,attr_writer,attr_accessor用法

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: 变量可读可写

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值