一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Ruby - 淺析Ruby中的類對象的概念

淺析Ruby中的類對象的概念

2020-04-28 09:53腳本之家 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!

 

延伸 · 閱讀

精彩推薦
  • Ruby剖析 Ruby 訪問控制

    剖析 Ruby 訪問控制

    前面,我們說 Ruby 沒有函數,只有方法.而且實際上有不止一種方法.這一節我們介紹 訪問控制 (accesscontrols). 想想當我們在最高層而不是在一個類的定義里定義...

    ruby教程網3572020-04-08
  • RubyRuby環境下安裝使用bundler來管理多版本的gem

    Ruby環境下安裝使用bundler來管理多版本的gem

    這篇文章主要介紹了Ruby環境下安裝使用bundler來管理多版本的gem的方法,舉了Ruby On Rails中的應用實例來進行演示,需要的朋友可以參考下 ...

    日拱一卒4332020-05-10
  • RubyRuby迭代器的7種技巧分享

    Ruby迭代器的7種技巧分享

    這篇文章主要介紹了Ruby迭代器的7種技巧分享,Ruby中的迭代器非常人性化,本文既是講解了7個技巧也是講解了7種迭代器,需要的朋友可以參考下 ...

    腳本之家4782020-04-20
  • RubyRuby進行文件信息輸出實例代碼

    Ruby進行文件信息輸出實例代碼

    Ruby進行文件信息輸出實例代碼,數據是隨機的,所以每次的記錄都會不同。 ...

    ruby教程網2962020-04-10
  • RubyRuby設計模式編程中使用Builder建造者模式的實例

    Ruby設計模式編程中使用Builder建造者模式的實例

    這篇文章主要介紹了Ruby設計模式編程中使用Builder建造者模式的實例,建造者模式將一個復雜對象的構造與它的表示分離,使同樣的構建過程可以創建不同的表...

    范孝鵬2192020-05-07
  • RubyRuby簡潔學習筆記(一):字符串、數字、類和對象

    Ruby簡潔學習筆記(一):字符串、數字、類和對象

    這篇文章主要介紹了Ruby簡潔學習筆記(一):字符串、數字、類和對象,本文是學習筆記第一篇,需要的朋友可以參考下 ...

    腳本之家2472020-04-20
  • RubyCentOS中配置Ruby on Rails環境

    CentOS中配置Ruby on Rails環境

    經過一個上午的折騰,終于把ROR環境在CentOS中搞定,繞了很多彎路,把文章寫下來總結一下 ...

    可樂加糖4762020-04-12
  • Ruby簡要說明Ruby中的迭代器

    簡要說明Ruby中的迭代器

    這篇文章主要介紹了Ruby中的迭代器,迭代器的概念在動態語言的編程中十分重要,文章中介紹了Ruby中的each迭代器和collect迭代器,需要的朋友可以參考下 ...

    goldensun2772020-04-25
主站蜘蛛池模板: 亚洲电影不卡 | 国产91在线精品狼人 | 国产一区二区在线观看美女 | 免费看h片的网站 | 深夜在线| 欧美vpswindows动物 | 亚洲视频在线观看不卡 | 无遮挡h肉动漫高清在线 | 性关系视频网站 | 成人在线播放视频 | 精品高潮呻吟99AV无码 | 国产自拍资源 | 国产99精品成人免费视频 | 久久久免费观成人影院 | 国产亚洲福利精品一区 | 精品国产香蕉 | asianfemdom妍妍女王 | 手机看片www xiao2b cm | 四虎私人影院 | 激情三级做爰在线观看激情 | 女人zooxx禽交 | 欧美性受xxxx88喷潮 | 不良网站在线观看 | 久久久久激情免费观看 | 无人区在线观看免费完整版免费 | 9总探花新品牛仔背带裤 | 亚州日韩精品AV片无码中文 | 5x社区在线观看直接进入 | 97精品国产自在现线免费 | 青草视频在线观看免费视频 | 青青青在线视频播放 | 天堂网在线网站成人午夜网站 | 7777奇米 | 国产精品久久久久久久久免费观看 | 我要看逼 | 欧美在线视频 一区二区 | 99热这里只有精品在线观看 | 午夜一个人在线观看完整版 | 极品主播的慰在线播放 | 亚洲a图 | 国产精品热久久毛片 |