標籤:
1.類和執行個體的關係
使用【執行個體.class】查看某個對象屬於哪個類
使用【執行個體.instance_of(類名)】判斷該執行個體是否屬於某個類
使用【執行個體.instance_methods】查看類的所有執行個體方法
2.BasicObject類是所有類的父類,它只定義了ruby對象的最基本的方法,甚至連一般對象需要的功能都沒有,顧一般繼承Object類,可以通過【is-a】或【is-a?】判斷繼承關係
3.類可以通過【class】關鍵字進行建立,預設具有無參的構造方法,通過是可以通過定義【initialize方法】定義有參數的構造方法,在方法中可以通過【self】關鍵字來調用接受者
4.屬性的getter和setter方法可以通過兩種方法實現
方法一:定義供外部存取的方法 def 屬性 @屬性 end 和 def 屬性名稱=(屬性值) @屬性=屬性值 end
方法二:通過聲明訪問屬性的方法 attr_reader:屬性名稱 attr_writer:屬性名稱 attr_accessor:屬性名稱
5.類方法的定義
1.方法一:在單例類中定義的方法都是單例方法 ,可以使用【class << 類名】的形式定義單例類,在單例類中添加方法即可
2.方法二:在普通類定義中,添加類方法 【class << self】
class 類名
class << self
def 方法名(參數)
執行操作
end
end
end
3.方法三:使用 【def 類名.方法名(參數)】的形式定義
4.方法四:在類的定義中使用【def self.方法名】進行定義
6.類常量可以直接在類的定義中進行定義,使用【類名::常量名】進行調用
類變數不能使用attr_accessor,需要直接定義存取方法
7.方法的存取層級:public(預設),private,protected
可以通過【private : 方法名】來單獨設定某個方法的存取層級
也可以通過【private】等來設定,之後的所有方法的存取層級
8.類的擴充
1.在原有類的基礎上添加新的方法
class 原類名
def 新添加的方法名
執行的處理
end
end
2.繼承父類(預設繼承Object類)
1.使用【class 類名 < 父類名】的方式定義子類,在子類定義中可以通過【alias 別名 原名】將原方法名進行別名設定,通過【undef 方法名】刪除已有的方法
2.通過【常量名=Class.new(父類名)】定義一個繼承了父類的子類,並賦值給常量
3.在方法類定義中,通過【extend 模組名】擴充類的類方法,通過【include 模組名】擴充類的執行個體方法
ruby學習總結04