用紅寶石混疊一種方法
來源:教育資源網(wǎng)
?
發(fā)布時(shí)間:2020-11-28 07:59:59
?
點(diǎn)擊:2007
別名Ruby中的方法或變量名稱是為方法或變量創(chuàng)建第二個(gè)名稱。別名可以用來為使用類的程序員提供更多表達(dá)性的選項(xiàng),或者幫助覆蓋方法并改變類或?qū)ο蟮男袨椤uby使用"別名"and"別名U方法"關(guān)鍵字提供此功能。
創(chuàng)建第二個(gè)名稱
別名關(guān)鍵字有兩個(gè)參數(shù):舊方法名稱和新方法名稱。方法名稱應(yīng)作為標(biāo)簽傳遞,而不是字符串。標(biāo)簽用于引用方法和變量而不直接引用它們。如果您'是一位新的紅寶石程序員,標(biāo)簽的概念可能看起來很奇怪,但每當(dāng)您看到像"這樣的標(biāo)簽;:methodname,"只需將其讀取為"稱為methodname。"下面的例子聲明了一個(gè)新的類,并為稱為start的on方法創(chuàng)建了一個(gè)別名。
#!/usr/bin/env ruby
class Microwave
def on
puts"Microwave on"
end
別名:start:on
end
m=微波
m.sta
科普視頻下載
改變類的行為
在聲明'之后,可能有時(shí)候你想改變一個(gè)類的行為。您可以通過創(chuàng)建與現(xiàn)有類聲明名稱相同的第二類聲明來別名并將新方法添加到現(xiàn)有類中。您還可以使用類似于繼承類語法的語法將別名和方法添加到單個(gè)對象。任何類的行為都可以通過為任何方法創(chuàng)建別名,然后創(chuàng)建一個(gè)新方法(使用原始方法名稱)來更改,該方法使用別名調(diào)用該方法。
在下面的示例中,聲明微波類并創(chuàng)建一個(gè)實(shí)例。第二類聲明使用別名方法更改"on"方法的行為,以添加警告消息。第三類聲明用于更改特定微波實(shí)例的行為以添加更嚴(yán)格的警告。多次混疊方法時(shí),請務(wù)必使用不同的方法名稱來存儲舊方法。
#!/usr/bin/env rubyclass微波
def on puts"微波on"endendm=微波.newm.onclass微波別名:oldon1:on
def on puts"警告:請勿插入金屬物體!"此特定微波
class
put"此微波較弱,添加額外時(shí)間"
old?on2
end
end
m.on#顯示額外消息
m2=微波
m2.on#不分散