Ruby訪問控制
本電子書由站長百科(www.zzbaike.com)教程組制作Ruby 訪問控制? 出處:站長百科?? 原文地址:?查看內(nèi)容請訪問網(wǎng)站。?? 本電子書整理自站長百科詞條,首家推出中文網(wǎng)站() 的美國主
本電子書由站長百科


(www.zzbaike.com)教程組制作
Ruby 訪問控制
? 出處:站長百科?
? 原文地址:?
查看內(nèi)容請訪問網(wǎng)站。?? 本電子書整理自站長百科詞條,
首家推出中文網(wǎng)站() 的美國主機商 無限空間 無限流量 贈送15個獨立IP 及 3個免費域名 免備案 支付寶付款方便快捷 中文客服全程服務(wù) 省錢大攻略: 為您省多多
前面,我們說Ruby 沒有函數(shù),只有方法.而且實際上有不止一種方法.這一節(jié)我們介紹訪問控制(access controls).
想想當(dāng)我們在"最高層"而不是在一個類的定義里定義一個方法時會發(fā)生什么.我們可以把這樣的方法設(shè)想為在像C 那樣的傳統(tǒng)語言中的函數(shù)的類似物.
ruby> def square(n)
| n * n
| end
nil
?
?
?
出處:站長百科?原文地址:?本電子書整理自站長百科Ruby ‐訪問控制詞條,查看內(nèi)容請訪問網(wǎng)站。?
,本電子書由站長百科(www.zzbaike.com)教程組制作
ruby> square(5)
25
我們的新方法看起來不屬于任何類,但實際上Ruby 將其分給Object 類,也就是所有其它類的父類.因此,所有對象現(xiàn)在都可以使用這一方法.這本應(yīng)是正確的,但有個小陷阱:它是所有類的私有(private)方法.我們將在下面討論這是什么意思,但一個結(jié)果是它只能以函數(shù)的風(fēng)格調(diào)用,像這樣:
ruby> class Foo
| def fourth_power_of(x)
| square(x) * square(x)
| end
| end
nil
ruby> Foo.new.fourth_power_of 10
10000
我們不允許向一個對象明確地運用這一方法:
?
?
?
出處:站長百科?原文地址:?本電子書整理自站長百科Ruby ‐

訪問控制詞條,查看內(nèi)容請訪問網(wǎng)站。?
,本電子書由站長百科(www.zzbaike.com)教程組制作
ruby> "fish".square(5)
ERR: (eval):1: private method `square' called for "fish":String
這一聰明的做法在 ruby 使得提供可以像在傳統(tǒng)語言中那樣運用函數(shù)的同時保持了 ruby 的純OO 性質(zhì)(函數(shù)仍是對象方法,但接受者隱式的為self).
在OO 編程里,有一個不成文的習(xí)慣,我們在前面的章節(jié)里有所暗示的,即有關(guān)規(guī)格(specification)和實現(xiàn) (implementation)的區(qū)別,或者說對象被要求完成什么任務(wù)和實際上它是怎樣完成的.對象的內(nèi)部工作應(yīng)該對用戶保持隱蔽;他們應(yīng)該只關(guān)心輸入什么和輸出什么,并相信對象知道它在內(nèi)部是在做什么.如此,某些外面世界看不見但卻在內(nèi)部使用(并可以由程序員在任何需要的時候改進,而不用改變用戶看到的類的對象)的方法將很有用.在下面這個普通的例子里,你可以把engine 看作類的內(nèi)部隱式方法.
ruby> class Test
| def times_two(a)
| print a," times two is ",engine(a),"n"
| end
?
?
?
出處:站長百科?原文地址:?本電子書整理自站長百科Ruby ‐

訪問控制詞條,查看內(nèi)容請訪問網(wǎng)站。?
,本電子書由站長百科(www.zzbaike.com)教程組制作
| def engine(b)
| b*2
| end
| private:engine # this hides engine from users | end
Test
ruby> test = Test.new
#
ruby> test.engine(6)
ERR: (eval):1: private method `engine' called for #
ruby> test.times_two(6)
6 times two is 12.
nil
開始時,我們本希望test.engine(6)返回12,但隨后當(dāng)我們扮演一個Test 對象用戶時我們了解到engine 是不可訪問的 ?
?
?
出處:站長百科?原文地址:?本電子書整理自站長百科Ruby ‐

訪問控制詞條,查看內(nèi)容請訪問網(wǎng)站。?
,本電子書由站長百科(www.zzbaike.com)教程組制作
(inaccessible).只有Test 的其它方法,像 times_two可以使用 engine.我們被要求保持程序的外部接口,也就是 times_two這些方法.管理此類的程序員可以自由的更改engine(這里,可能把b*2改為b b,假設(shè)這樣可以提高性能)而不影響用戶與 Test 對象打交道.這個例子當(dāng)然過于簡單;訪問控制的優(yōu)點只有當(dāng)我們開始寫更復(fù)雜和有趣的類時方能顯現(xiàn)出來.
更多電子書
SEO 方面的知識有很多,對于新手來說,如果你不知道,不清楚這方面的知識,那么,你可以看看這兩部搜索引擎指南:
SEO 搜索引擎優(yōu)化基礎(chǔ)教程:
SEO 搜索引擎優(yōu)化高級教程:
wordpress的中文翻譯文檔:http://www.wordpress.la/codex.html,wordpress 開發(fā)的相關(guān)知識都有,對WordPress開發(fā)感興趣的博主會有一定的用處。
WordPress免費主題:http://www.wordpress.la/theme.html
WordPress免費插件:http://www.wordpress.la/plugin.html
WordPress 主題制作電子書:
Apache2.2中文文檔電子書:
IXWeHosting 控制面板使用手冊(在線版 PDF電子書) :
?
?
?
出處:站長百科?原文地址:?本電子書整理自站長百科Ruby ‐

訪問控制詞條,查看內(nèi)容請訪問網(wǎng)站。?
,本電子書由站長百科(www.zzbaike.com)教程組制作
更多電子書下載:http://down.zzbaike.com/ebook/
視頻教程:
1. 美國主機IXWebHosting 使用視頻教程(在線觀看及下載)
2. Godaddy 主機及域名使用視頻教程(在線觀看及下載)
如果您有站長類電子書,請到這里與我們分享:
詳情見: http://bbs.zzbaike.com/thread-23156-1-1.html
站長百科感謝您下載閱讀,多謝支持!
?
?
?
出處:站長百科?原文地址:?本電子書整理自站長百科Ruby ‐

訪問控制詞條,查看內(nèi)容請訪問網(wǎng)站。?