ホーム :その2 :クラスとモジュール :

【クラスとは】

前へ 次へ


●クラスとインスタンス

 クラスとはオブジェクトの種類を表す。
 
 クラスを元に生成したオブジェクトをインスタンスという。

 (例)
 オブジェクトが何というクラスのオブジェクトなのか

 ary = []
 str = "Hello world."
 p ary.class  #=> Array
 p str.class  #=> String

 あるオブジェクトがあるクラスのインスタンスかどうか判断
 ary = []
 str = "Hello world."
 p ary.instance_of?(Array)  #=> true
 p str.instance.of?(String)  #=> true
 p ary.instance_of?(String)  #=> false
 p str.instance_of?(Array)  #=> false


●継承

 すでに定義されているクラスを拡張して新しいクラスを作ることをいう。

 組み込みクラスの継承の関係

 Object
  ├─Array
  ├─String
  ├─Hash
  ├─Regexp
  ├─IO
  │ └──File
  ├─Dir
  ├─Numeric
  │ ├──Integer
  │ │  ├──Bignum
  │ │  └──Fixnum
  │ └──Float
  ├─Exception
  └─Time

 サブクラスとスーパークラスの関係を「is-aの関係にある」という。
 どのクラスに属するかを確認するには以下の手順で行う。

 str = "This is a String."
 p str.is_a(String)  #=> true
 p.str.is_a(Object)  #=> true


クラスとモジュール に戻る