掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流
Ruby 是一種完美的面向?qū)ο缶幊陶Z(yǔ)言。面向?qū)ο缶幊陶Z(yǔ)言的特性包括:

創(chuàng)新互聯(lián)專(zhuān)注于企業(yè)全網(wǎng)整合營(yíng)銷(xiāo)推廣、網(wǎng)站重做改版、浠水網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計(jì)、商城開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為浠水等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
這些特性將在 面向?qū)ο蟮?Ruby 中進(jìn)行討論。
一個(gè)面向?qū)ο蟮某绦?,涉及到的?lèi)和對(duì)象。類(lèi)是個(gè)別對(duì)象創(chuàng)建的藍(lán)圖。在面向?qū)ο蟮男g(shù)語(yǔ)中,您的自行車(chē)是自行車(chē)類(lèi)的一個(gè)實(shí)例。
以車(chē)輛為例,它包括車(chē)輪(wheels)、馬力(horsepower)、燃油或燃?xì)夤奕萘浚╢uel or gas tank capacity)。這些屬性形成了車(chē)輛(Vehicle)類(lèi)的數(shù)據(jù)成員。借助這些屬性您能把一個(gè)車(chē)輛從其他車(chē)輛中區(qū)分出來(lái)。
車(chē)輛也能包含特定的函數(shù),比如暫停(halting)、駕駛(driving)、超速(speeding)。這些函數(shù)形成了車(chē)輛(Vehicle)類(lèi)的數(shù)據(jù)成員。因此,您可以定義類(lèi)為屬性和函數(shù)的組合。
類(lèi) Vehicle 的定義如下:
Class Vehicle
{
Number no_of_wheels
Number horsepower
Characters type_of_tank
Number Capacity
Function speeding
{
}
Function driving
{
}
Function halting
{
}
}
通過(guò)給這些數(shù)據(jù)成員分配不同的值,您可以創(chuàng)建類(lèi) Vehicle 的不同實(shí)例。例如,一架飛機(jī)有三個(gè)輪子,馬力 1,000,燃油罐容量為 100 升。以同樣的方式,一輛汽車(chē)有四個(gè)輪子,馬力 200,煤氣罐容量為 25 升。
為了使用 Ruby 實(shí)現(xiàn)面向?qū)ο缶幊?,您需要先學(xué)習(xí)如何在 Ruby 中創(chuàng)建對(duì)象和類(lèi)。
在 Ruby 中,類(lèi)總是以關(guān)鍵字 class 開(kāi)始,后跟類(lèi)的名稱(chēng)。類(lèi)名的首字母應(yīng)該大寫(xiě)。類(lèi) Customer 如下所示:
class Customer end
您可以使用關(guān)鍵字 end 終止一個(gè)類(lèi)。類(lèi) 中的所有數(shù)據(jù)成員都是介于類(lèi)定義和 end 關(guān)鍵字之間。
Ruby 提供了四種類(lèi)型的變量:
使用類(lèi)變量 @@no_of_customers,您可以判斷被創(chuàng)建的對(duì)象數(shù)量,這樣可以確定客戶(hù)數(shù)量。
class Customer @@no_of_customers=0 end
對(duì)象是類(lèi)的實(shí)例。現(xiàn)在您將學(xué)習(xí)如何在 Ruby 中創(chuàng)建類(lèi)的對(duì)象。在 Ruby 中,您可以使用類(lèi)的方法 new 創(chuàng)建對(duì)象。
方法 new 是一種獨(dú)特的方法,在 Ruby 庫(kù)中預(yù)定義。new 方法屬于類(lèi)方法。
下面的實(shí)例創(chuàng)建了類(lèi) Customer 的兩個(gè)對(duì)象 cust1 和 cust2:
cust1 = Customer. new cust2 = Customer. new
在這里,cust1 和 cust2 是兩個(gè)對(duì)象的名稱(chēng)。對(duì)象名稱(chēng)后跟著等號(hào)(=),等號(hào)后跟著類(lèi)名,然后是點(diǎn)運(yùn)算符和關(guān)鍵字 new。
您可以給方法 new 傳遞參數(shù),這些參數(shù)可用于初始化類(lèi)變量。
當(dāng)您想要聲明帶參數(shù)的 new 方法時(shí),您需要在創(chuàng)建類(lèi)的同時(shí)聲明方法 initialize。
initialize 方法是一種特殊類(lèi)型的方法,將在調(diào)用帶參數(shù)的類(lèi)的 new 方法時(shí)執(zhí)行。
下面的實(shí)例創(chuàng)建了 initialize 方法:
class Customer
@@no_of_customers=0
def initialize(id, name, addr)
@cust_id=id
@cust_name=name
@cust_addr=addr
end
end
在本實(shí)例中,您可以聲明帶有 id、name、addr 作為局部變量的 initialize方法。在這里,def 和 end 用于定義 Ruby 方法 initialize。在后續(xù)的章節(jié)中,您將學(xué)習(xí)有關(guān)方法的更多細(xì)節(jié)。
在 initialize 方法中,把這些局部變量的值傳給實(shí)例變量 @cust_id、@cust_name 和 @cust_addr。在這里,局部變量的值是隨著 new 方法進(jìn)行傳遞的。
現(xiàn)在,您可以創(chuàng)建對(duì)象,如下所示:
cust1=Customer.new("1", "John", "Wisdom Apartments, Ludhiya")
cust2=Customer.new("2", "Poul", "New Empire road, Khandala")
在 Ruby 中,函數(shù)被稱(chēng)為方法。類(lèi)中的每個(gè)方法是以關(guān)鍵字 def 開(kāi)始,后跟方法名。
方法名總是以小寫(xiě)字母開(kāi)頭。在 Ruby 中,您可以使用關(guān)鍵字 end 來(lái)結(jié)束一個(gè)方法。
下面的實(shí)例定義了一個(gè) Ruby 方法:
class Sample
def function
statement 1
statement 2
end
end
在這里,statement 1 和 statement 2 是類(lèi) Sample 內(nèi)的方法 function 的主體的組成部分。這些語(yǔ)句可以是任何有效的 Ruby 語(yǔ)句。例如,我們可以使用方法 puts 來(lái)輸出 Hello Ruby,如下所示:
class Sample
def hello
puts "Hello Ruby!"
end
end
下面的實(shí)例將創(chuàng)建類(lèi) Sample 的一個(gè)對(duì)象,并調(diào)用 hello 方法:
#!/usr/bin/ruby
class Sample
def hello
puts "Hello Ruby!"
end
end
# 使用上面的類(lèi)來(lái)創(chuàng)建對(duì)象
object = Sample. new
object.hello
這將會(huì)產(chǎn)生下面的結(jié)果:
Hello Ruby!
如果您想要做更多有關(guān)類(lèi)和對(duì)象的練習(xí),這里有一個(gè)案例研究:
Ruby 類(lèi)案例

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流