ruby 冻结对象

         在ruby Object中,freeze方法可以有效地把一个对象变成一个常量。任何对象都可以通过调用Object.freeze进行冻结。冻结对象不能被修改,也就是说,不能改变他的实例变量。可使用Object.frozen?方法检查一个给定的对象是否已经冻结。如果被冻结,该方法将返回true,否则返回一个false值。

####冻结对象####
#在Object中,freeze方法可有效地把一个对象变成一个常量。任何对象都可以通过调用Object.freeze进行冻结。
#定义类
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.freeze
if(box.frozen?)
	puts "Box Object is frozen object"
else
	puts "Box Object is normal object"
end
#现在尝试使用设置器方法
# box.setWidth = 30
# box.setHeight = 50
#使用访问器方法
x = box.getWidth()
y = box.getHeight()

puts "Width of the box is:#{x}"
puts "height of the box is:#{y}"



你可能感兴趣的:(ruby)