嘻皮客娱乐学习网

标题: Ruby中的保护方法和私有方法与一般面向对象程序设计语言的一样吗 [打印本页]

作者: 生命的意义    时间: 2014-11-30 20:36
标题: Ruby中的保护方法和私有方法与一般面向对象程序设计语言的一样吗
Ruby中的保护方法和私有方法与一般面向对象程序设计语言的概念有所区别,保护方法的意思是方法只能方法只能被定义这个方法的类自己的对象和子类的对象访问,私有方法只能被对象自己访问。

class Test
def method1    #默认为公有方法

end

protected  #保护方法
def method2

end

private  #私有方法
def method3
end

public
def test_protected(arg) #arg是Test类的对象
  arg.method2   #正确,可以访问同类其他对象的保护方法
end

def test_private(arg) #arg是Test类的对象
  arg.method3  #错误,不能访问同类其他对象的私有方法
end
end

obj1 = Test.new
obj2 = Test.new
  
obj1.test_protected(obj2)
obj1.test_private(obj2)

可以看到,和C++/Java相比,Ruby提供了更好的封装性。




欢迎光临 嘻皮客娱乐学习网 (http://www.xipick.com/) Powered by Discuz! X3.3