rudy是什么意思:rudy 思路方法 分析

什么叫做个思路方法呢?在OO编程里,我们不希望直接从外部操纵个对象数据;相反,对象自己了解如何操纵自身(当被恰当地要求时).
你也许会说我们传递条消息给个对象,那些消息就会某类行为或者做有意义回复.这些都会在我们无需了解或关心这个对象内部
工作机制情况下发生.为我们所允许可让其执行作业(或等价,它能听懂消息)就是对象思路方法.
在ruby里,我们通过点(dot notation,正如C或Java)来个对象思路方法.被对象在点左方给出.
ruby> "abcdef".length
6

表面上看,这串被问及其长度.技术上看,我们正对象"abcdef"length思路方法.
其它对象也许拥有个稍有区别length接口,或者根本没有.消息如何应答在运行期间做决定,行为也取决于其所指变量.
ruby> foo = "abc"
"abc"
ruby> foo.length
3
ruby> foo = ["abcde", "fghij"]
["abcde", "fghij"]
ruby> foo.length
2

length意义也会随对象变化而改变.在上例中,第次我们叫foo返回其长度,它对应于个简单串,这里也就只有种合理答案.第 2次,foo代表,我们也许会考虑其长度为2,5或10;但般情况下最合适答案当然是2(其它类型长度也应被很容易猜出).
ruby> foo[0].length
5
ruby> foo[0].length + foo[1].length
10

这里需注意了解其自身作为意义.Ruby中部分代码赋予了他们这性质,因此对他们需求可以自动通过各种
适当思路方法实现.由于相当少量对应于我们在自然语言中所表达概念思路方法名能被区别种类数据如我们所愿地采用,这便将员从大量特殊名中解脱出来.OO编程语言特点(在我看来,Java点做并不是很好)叫做多态(polymorphism).
个对象碰到个不能理解信息,便会"发生":
ruby> foo = 5
5
ruby> foo.length
ERR: (eval):1: und method `length' for 5(Fixnum)

所以我们就需要了解什么思路方法是被这对象所接受,虽然我们并不需要了解这个思路方法是如何工作.
如果要给思路方法赋参数,参数应在对括号内,
object.method(arg1, arg2)

如果不会引起歧义,括号可以去掉.
object.method arg1, arg2

Ruby里有个特殊变量self;它指向任意思路方法对象.由于"self"经常用到,为了方便它可被省掉:
self.method_name(args...)

和这
method_name(args...)

我们传统意义上只不过是self方式种简写罢了.这也使Ruby可以叫作种纯正面向对象语言.当然,为了那些搞不清在Ruby里其实就是对象思路方法人,思路方法看起来很像在别语言中.如果我们喜欢,我们也可以叫它们,就仿佛他们不是真对象思路方法样.
Tags:  rudyyoungblood valentinorudy rudy什么意思 rudy是什么意思

延伸阅读

最新评论

发表评论