前へ | 次へ |
●クラスとインスタンス
クラスとはオブジェクトの種類を表す。
クラスを元に生成したオブジェクトをインスタンスという。
(例)
オブジェクトが何というクラスのオブジェクトなのか
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