クラスとインスタンスのまとめ
Rubyをはじめたころの自分の記事が意外にも分かりやすかったので、改変して再掲載しますw
クラスメソッドとインスタンスメソッド - mic_footprints
☆クラスメソッド
クラスとは
- クラスとは、オブジェクトの種類を表したもの
- つまり、複数のオブジェクト(インスタンス)の枠組みと捕らえてよいでしょう
クラスメソッドとは
- クラスに直接働きかけるメソッドのこと
- 例
Student.find(1)
-
- findメソッドはStudentクラスに直接働きかけている
- つまり、クラスメソッド
学級と生徒で例えてみる
- 状況
- C組という学級(クラス)がある
- C組には太郎君、花子さんがいる
- つまり、太郎君、花子さんは、C組クラスのインスタンス(C組オブジェクト)
- C組の太郎君を探すメソッドを呼び出す
C.sagasu("太郎君")
-
- ここでのsagasuメソッドは、クラスメソッド
- sagasuメソッドはC組に直接働きかけている
たとえば、C組の太郎君を廊下に立たせるためのメソッドというのはクラスメソッドではありません
これは、次で説明するインスタンスメソッドです
☆インスタンスメソッド
☆メソッドとレシーバ
- メソッド(method)が働きかける先をレシーバ(receiver)という
メソッド
- オブジェクトに関連する操作を行う
- Rubyでは、全ての操作がメソッドとして実装されている
メソッドの呼び出し
オブジェクト.メソッド名(第一引数, 第二引数, 第三引数, ・・・, 第N引数)
- メソッドを実行するということは、「オブジェクトにメッセージを送る」ということ
- 引数がある場合は、引数と共にメッセージが送られるというイメージ
レシーバ
- メソッドから操作されるもの
- つまり、「オブジェクトはメッセージを受け取る(receive)」ということ
クラスメソッドとインスタンスメソッドに於いて
個人的な感想ですが、レシーバを意識することで、オブジェクト指向の感覚がつかめた気がします。
プログラミングをはじめたばかりの方々に少しでも参考になれば幸いです。
- 作者: 高橋征義,後藤裕蔵,まつもとゆきひろ
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2010/03/31
- メディア: 単行本
- 購入: 15人 クリック: 394回
- この商品を含むブログ (79件) を見る
最後まで、お読み頂きありがとうございました!