主頁 > 知識庫 > Ruby基礎知識之類

Ruby基礎知識之類

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

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

復制代碼 代碼如下:

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

訪問器

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

復制代碼 代碼如下:

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

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

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

要注意的是:
復制代碼 代碼如下:

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

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

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

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

classself
       def 方法
       end
end

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

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

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

#訪問性 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)建實例
復制代碼 代碼如下:

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

模塊module

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

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

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

巨人網絡通訊聲明:本文標題《Ruby基礎知識之類》,本文關鍵詞  Ruby,基礎知識,之類,Ruby,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Ruby基礎知識之類》相關的同類信息!
  • 本頁收集關于Ruby基礎知識之類的相關信息資訊供網民參考!
  • 推薦文章