Ruby的存取控制

Ruby的存取控制

在php?name=Ruby" onclick="tagshow(event)" class="t_tag">Ruby中,只可以通过方法改变一个类的属性。php?name=Ruby" onclick="tagshow(event)" class="t_tag">Ruby提供了三种存取控制。
1.公有方法(Public Method)
公有方法在任何地方都可以被调用,这是该方法默认的存取控制。 除initialize和initialize_copy方法以外,他们永远是私有方法
2.保护方法(Protect Method)
保护方法只能被定义该方法的类自己的对象和该类的子类对象调用。
3.私有方法(Private Method)
私有方法只能被定义该方法的类的对象自己调用,即使该类的其他对象也不能调用它。

第一种存取控制很容易理解,就是平时用的,但第二和三的实际意义在哪里,尤其是私有方法只能被定义该方法的类的对象自己调用,似乎没有什么实际意义。

请有实际Ruby and Rails开发经验的会员或朋友给我一些实际应用的例子来说明一下其用法。谢谢!
Protected的使用主要是为了使继承类有改变基类的某些能力。
至于Private则是隐藏了内部的实现,统一对外接口的一种实现方式。很多方法和变量是需要Private的。
也许把存取控制叫访问控制更好理解一点
存取这叫法应该来自于对岸。
如在JAVA中有一个方法aMethod和方法bMethod
如下
class AAA{
private void aMethod(String str){
.......
}
public void bMethod(){
...
aMethod(str);
....
}
public void c(){
  aMethod(str);
}
}
在我们的类AAA中所要使用的方法aMethod()只有在当前类中使用时,而这个方法又有可能需要被其它方法
多次调用时,就有必要把它细化出来.
那么我们就没有必要把aMethod()这个方法暴露出去,让别的来调用.
从Ruby开始学编程?
还是多少熟悉一下c++,java,csharp这类强类型语言
很多很普遍的道理在那里都解释的很详细
引用:
原帖由 drive2me 于 2007-9-9 21:01 发表
在Ruby中,只可以通过方法改变一个类的属性。Ruby提供了三种存取控制。
1.公有方法(Public Method)
公有方法在任何地方都可以被调用,这是该方法默认的存取控制。 除initialize和initialize_copy方法以外 ...
引用:
原帖由 nonocast 于 2007-9-19 17:29 发表
从Ruby开始学编程?
还是多少熟悉一下c++,java,csharp这类强类型语言
很多很普遍的道理在那里都解释的很详细
引用:
原帖由 kh9n 于 2007-9-19 18:30 发表


举一个例子,假设在rails工程一个叫做PostsController的class里面,我们需要一个方法来限制特定用户才能访问本controller中的内容,不如把这个方法叫做authenrize,在本controller中其他方法调用它,因为只 ...
引用:
原帖由 xnine 于 2007-9-25 09:17 发表

漂亮的解说 谢谢