浏览 1806 次
锁定老帖子 主题:ruby的method作用域
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-05-03
一、Java当中的含义: private在Java当中的含义是只在当前类范围之内可以调用,当前类的子类也无法访问; protected在Java当中的含义是在当前类以及子类当中可以调用,其他类无法访问; 二、Ruby当中的含义: private在某种程度上相当于Java当中的protected,当前类以及子类都可以调用,其他类无法访问,但也有点不同,即private方法只能被当前对象隐式调用(self.),不能被显式调用,换句话说,就是private方法不能跨同一个类的不同实例来调用; protected稍微宽泛一点,指可以调用同一个类别的其他实例方法,也就是说,protected方法可以显式调用(obj.),例如: class C def initialize(name) @name = name end def compare(c) c.name == @name end protected def name @name end end class D < C end d1 = D.new("fankai") d2 = D.new("hello") puts d1.compare(d2) 在类别C当中使用c.name,如果name方法是private的话,只能使用 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |