淺析Ruby中的類對象的概念

來源:互聯網
上載者:User

淺析Ruby中的類對象的概念

   這篇文章主要介紹了Ruby中的類對象的概念,是Ruby學習當中的基礎知識,需要的朋友可以參考下

  物件導向的程式涉及類和對象。 一個類是藍本,從個別對象被建立。在物件導向的術語,我們說小明的單車是被稱為單車類的對象執行個體。

  任何車輛的例子。它包括輪子,馬力,燃油或燃氣罐容量。這些特點形成的類車輛的資料成員。可以從其他車輛區分這些特徵。

  車輛也有一定的功能,如停止,駕駛,超速駕駛。即使這些功能形成的類車輛的資料成員。因此,可以定義一個類作為一個組合的特點和功能。

  車輛類可以被定義為:

  ?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

Class Vehicle

{

Number no_of_wheels

Number horsepower

Characters type_of_tank

Number Capacity

Function speeding

{

}

Function driving

{

}

Function halting

{

}

}

  通過這些資料成員分配不同的值,可以形成類車輛的幾個執行個體。例如,飛機的有三個輪子,1,000馬力,不同的燃料罐及容量為100升。同樣的方式,一輛汽車有四個輪子,200馬力,氣體作為不同的罐及容量25升。

  Ruby中定義一個類:

  要通過使用Ruby實現物件導向編程,需要先學習如何建立對象和Ruby中的類。

  Ruby中一個類總是以關鍵字class類的名稱開頭。名稱應始終以首字母大寫。如以是Customer類可以顯示為:

  ?

1

2

class Customer

end

  類定義結束通過使用關鍵字end結束。在類的所有資料成員是類之間的定義,並以end關鍵字作為結束符。

  Ruby類中的變數:

  Ruby提供了四種類型的變數:

  局部變數: 局部變數是在一個方法中定義的變數。局部變數是停用方法外。更多細節在隨後的章節中的方法中會介紹。局部變數一般以小寫字母或_開頭。

  執行個體變數: 執行個體變數是可跨越任何特定執行個體或對象的方法。這意味著,從對象到對象的執行個體變數改變。執行個體變數前面加上at符號(@),跟著變數名。

  類變數:類變數是可在各種不同的對象。 一個類變數屬於類,是類的一個特點。他們前面的符號@@跟著的變數名。

  全域變數: 類變數是不能跨類。如果想要一個單一的變數可以跨類,需要定義一個全域變數。全域變數的前面總是用貨幣符號($)。

  例子:

  使用類變數@@no_of_customers,能確定建立的對象的數量。這使得匯出的客戶數量。

  ?

1

2

3

class Customer

@@no_of_customers=0

end

  Ruby中使用new方法建立對象:

  對象是類的執行個體。現在,將學習如何在Ruby中建立對象一個類對象。Ruby中通過使用new方法建立對象。

  new方法是一種獨特的方法,這是預定義在Ruby庫。new方法屬於類的方法。

  下面的例子是建立兩個對象類客戶cust1 和 cust2:

  ?

1

2

cust1 = Customer. new

cust2 = Customer. new

  在這裡,cust1和cust2是兩個對象的名字。在等號(=)之後,類名稱將按照對象名稱。然後,點運算子和關鍵字new在後面。

  自訂方法來建立Ruby對象 :

  可以通過new方法的參數,這些參數可以用來初始化類變數。

  當打算聲明的new方法具有參數,需要聲明的方法在建立類的時候初始化。

  initialize方法是一種特殊類型的方法,該方法時將執行new方法的類被稱為參數。

  下面的例子是建立initialize方法:

  ?

1

2

3

4

5

6

7

8

class Customer

@@no_of_customers=0

def initialize(id, name, addr)

@cust_id=id

@cust_name=name

@cust_addr=addr

end

end

  在這個例子中,可以聲明局部變數的初始化方法id, name和addr。這裡def 結束被用來定義一個Ruby的??方法初始化。這些將在有關後續章節中瞭解更多。

  在initialize方法中,對這些局部變數的值傳遞到執行個體變數@cust_id,@cust_name和@cust_addr。這裡的局部變數持有的值由new方法一同傳遞。

  現在可以建立對象,如下所示:

  ?

1

2

cust1=Customer.new("1", "John", "Wisdom Apartments, Ludhiya")

cust2=Customer.new("2", "Poul", "New Empire road, Khandala")

  Ruby中類的成員函數:

  在Ruby中,函數被調用的方法。在一個類中的每個方法的方法名用關鍵字def開始。

  方法名總是以小寫字母最好。你最終的方法Ruby中通過使用關鍵字end表示結束。

  下面的例子是定義一個Ruby的方法:

  ?

1

2

cust1=Customer.new("1", "John", "Wisdom Apartments, Ludhiya")

cust2=Customer.new("2", "Poul", "New Empire road, Khandala")

  這裡statement1和statement2為函數體的一部分。這些statments可以是任何有效Ruby語句。例如,我們可以在方法中列印Hello Ruby如下:

  ?

1

2

3

4

5

class Sample

def hello

puts "Hello Ruby!"

end

end

  現在,在下面的例子Sample類建立一個對象,並調用hello方法,看到的結果:

  ?

1

2

3

4

5

6

7

8

9

10

11

#!/usr/bin/ruby

 

class Sample

def hello

puts "Hello Ruby!"

end

end

 

# Now using above class to create objects

object = Sample. new

object.hello

  這將產生以下結果:

  ?

1

Hello Ruby!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.