新手问题 [SOLVED] 不明白 Ruby 的方法可见性控制

stardiviner · 2014年07月05日 · 最后由 billy 回复于 2014年07月05日 · 1900 次阅读

不明白 Ruby 的方法可见性控制是怎么回事,更深层的是不明白实例中的使用是什么样子的,没有例子参考理解。也不是很明白 self,之类的。

如果有好的文章,书,博客能解释我的对于以上的疑问,请务必推荐。谢谢。

我在网上找了一些博客上发的笔记,其中一个代码展示如下。

https://gist.github.com/stardiviner/20c9e92ed783ab967dec

但是结果中我有一个不明白: 第二个输出结果 B-protected 应该是来自 class B 的 private_mth. 那么难道不该是输出 B-private 么?

不明白楼主的意思 楼主可以自己把代码在本机跑跑看,第二个 B-protected 确实是调用 protected_mth 方法的结果

这个 gist 的例子写得是相当的差劲。虽然能说明可见性的道理,但代码结构一塌糊涂。B < A 然后 A 里面调用 B,不是说不能跑,但既然是写教程,最起码的 OOP 原则应该遵守,不然教别人什么。

楼主不明白的话就直接看 Ruby programming 的书吧,书里都有写,看 Ruby 文档就更好。

@iBachue 我的确跑了代码,但是对比的时候除了问题。。。。啊,确实,我又第 5 次重新回看代码,终于发现,我漏看了代码,这真是第一次有这样的体验,真神奇。

#2 楼 @billy 是这样么?我正在看 Programming Ruby 1.9. 你说的是这本书还是另外一本?在哪个章节?我直接跳过去看。

话说确实,这个我也发现了,只听说过 OOP 的我也直觉这有点怪异。。。。

就是这本,好像现在有 2.0 的出来了,不清楚具体是什么地方,但肯定是有的。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号