Rubyリファレンス: Home

Object

Edit   History

標準クラス・モジュール > Object

Objectクラスは、すべてのクラスの親クラスです。

すべてのオブジェクトは、下記の一覧に示したObjectクラスのメソッドを呼び出せます。たとえば、文字列(Stringオブジェクト)と自作のCatクラスのオブジェクトは、どちらもobject_idを呼び出せます。

str = "hello"
p str.object_id
 
class Cat
end
cat = Cat.new
p cat.object_id
26029092
26029032

Objectの直接のサブクラスでなくても、親の親をさかのぼっていけばObjectに行き当たります。また、クラス定義で「class クラス」に「< 親クラス」を付けないときは、自動的にObjectクラスのサブクラスになります。次の例では、kind_of?メソッドで親クラスにObjectクラスがあるか調べています。

p str.kind_of?(Object)
p cat.kind_of?(Object)
true
true

親クラスとモジュール

ObjectクラスはKernelモジュールをインクルードしています。親クラスはありません。

Ruby 1.9 Ruby 1.9ではBasicObjectクラスがObjectクラスの親クラスになりました。==などいくつかのメソッドはBasicObjectに移されました。

Object < Kernel (< BasicObject)

メソッド一覧

クラスメソッド

インスタンスメソッド

これらのメソッドは、実際にはKernelモジュールのpublicなメソッドとして実装されていますが、一般的にObjectクラスのメソッドとして扱われます。また、この一覧にはBasicObjectのメソッドも混ぜてあります。

privateメソッド

Rubyから呼び出されるメソッド