濮阳杆衣贸易有限公司

主頁 > 知識庫 > Ruby基礎(chǔ)知識之類

Ruby基礎(chǔ)知識之類

熱門標(biāo)簽:地圖標(biāo)注賺錢項(xiàng)目注冊 白銀外呼paas系統(tǒng) 電銷機(jī)器人廠商代理 常德電銷平臺外呼系統(tǒng)軟件價格 滴滴外呼系統(tǒng) 百度地圖標(biāo)注自定義圖片 湖州u友防封電銷卡 徐州網(wǎng)絡(luò)外呼系統(tǒng)哪個好 高德地圖標(biāo)注客服

創(chuàng)建類: class后跟類名,其中類名的首字母必須要大寫。實(shí)例化時,通過new方法實(shí)例化。在c#中有構(gòu)造器,構(gòu)造器與類同名。在ruby中,構(gòu)造器為initialize方法。當(dāng)通過new方法實(shí)例化一個類對象后,會自動調(diào)用initialize方法,把new中的參數(shù)傳遞給initialize方法進(jìn)行初始化。在c#中的域,在ruby中稱為實(shí)例變量,定義時前邊加@前綴,表示是一個實(shí)例變量。

復(fù)制代碼 代碼如下:

class Customer
    def initialize(name,age)
      @name,@age=name,age
    end
end
 
c1=Customer.new("Tom",20)

訪問器

實(shí)例變量只能通過實(shí)例方法來訪問。如果要訪問它們可以提供方法訪問器。在c#中稱為屬性,Java中也是定義方法來表示屬性。

復(fù)制代碼 代碼如下:

class Customer
    def initialize(name,age)
      @name,@age=name,age
    end
    
    def name
      @name
    end
    def age
      @age
    end
end

以上定義了兩個方法x,y,它們可以讀@x,@y實(shí)例變量。這就定義了讀屬性方法。如果要進(jìn)行賦值操作,還要定義寫屬性方法:
復(fù)制代碼 代碼如下:

    def name=(v)
      @name=v
    end
    def age=(v)
      @age=v
    end

要注意的是:
復(fù)制代碼 代碼如下:

c1=Customer.new("Tom",20)
c1.name="Jhon"

只有在實(shí)例中才能這樣使用寫屬性。如果在類中,不能通過name=value這樣來代替@name=value。但可以通過self來這樣使用:self.name=value
Ruby提供了簡化定義屬性方法:attr_reader和attr_accessor。后邊跟符號,會自動創(chuàng)建同名的讀寫屬性。
復(fù)制代碼 代碼如下:

class Customer
    def initialize(name,age)
      @name,@age=name,age
    end 
 
    attr_reader :name,:age
    attr_accessor:name,:age
end
c1=Customer.new("Tom",20)
puts c1.name,c1.age
c1.name="Jhon"
c1.age=30
puts c1.name,c1.age

類變量,常量,類方法
類變量以@@開頭;常量通過[類名+::常量名]進(jìn)行訪問;類方法在實(shí)例方法方法名前加類名。在定義類方法時,可以采用一種方式:
復(fù)制代碼 代碼如下:

classself
       def 方法
       end
end

那么,這個方法就是一個類方法:
復(fù)制代碼 代碼如下:

class Customer
    def initialize(name,age)
      @name,@age=name,age
    end
    class self
      def showName
        'ok'
      end
    end
end
 
puts Customer.showName

方法的訪問性
public:公有的,默認(rèn)情況下類中的方法是公有的,可以用在任何地方。構(gòu)造方法initialize為私有的。
private:私有的,類內(nèi)部使用的,只能被類或子類的實(shí)例方法所調(diào)用。只能通過self隱式調(diào)用,不能通過一個對象顯示調(diào)用。一個私有方法m,只能通過m調(diào)用,而不能通過o.m或self.m調(diào)用。
protected:受保護(hù)的,類內(nèi)部或子類內(nèi)部使用的方法。與私有的區(qū)別是:除self隱式調(diào)用外,還可以通過該類對象顯示調(diào)用。
可以通過以下方法來聲明方法的訪問性:
復(fù)制代碼 代碼如下:

#訪問性 private protected public
  private
  def private_method
    puts "private method testing"
  end
  protected
  def protected_method
    puts "protected method testing"
  end
  
  public:protected_method

工廠方法
使用new方法私有,然后通過類方法創(chuàng)建實(shí)例
復(fù)制代碼 代碼如下:

class Fruit
  private_class_method:new
  def Fruit.CreateFruit
    new Fruit
  end
end
f=Fruit.CreateFruit

模塊module

module作用之一是做為名字空間用。調(diào)用類時與調(diào)用常量相同:兩個冒號
另一作用是作為混入。通過include把模塊中的實(shí)例方法包含到其它類中。感覺功能像C#中的名字空間引入。

您可能感興趣的文章:
  • 使用Ruby on Rails和PostgreSQL自動生成UUID的教程
  • 簡單介紹Ruby on Rails對PostgreSQL數(shù)組類型的支持
  • 詳解Ruby當(dāng)中的算數(shù)運(yùn)算

標(biāo)簽:荊門 遼寧 梧州 張家界 普洱 三沙 永州 公主嶺

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Ruby基礎(chǔ)知識之類》,本文關(guān)鍵詞  Ruby,基礎(chǔ)知識,之類,Ruby,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Ruby基礎(chǔ)知識之類》相關(guān)的同類信息!
  • 本頁收集關(guān)于Ruby基礎(chǔ)知識之類的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    林西县| 三门峡市| 和林格尔县| 佛学| 长春市| 饶平县| 宜丰县| 合水县| 新化县| 长海县| 图片| 红原县| 扶余县| 正安县| 九江市| 沁源县| 郴州市| 栾川县| 益阳市| 安龙县| 太保市| 奉化市| 郎溪县| 确山县| 昭通市| 荃湾区| 黎城县| 延吉市| 肇州县| 黄浦区| 朝阳市| 固安县| 松潘县| 临邑县| 阿拉善盟| 胶南市| 临漳县| 靖安县| 贺兰县| 邳州市| 屏东市|