Rubyはオブジェクトでできている
Rubyはものを作る時に、
『コンピューターに、こうやって作れ』と指示を出しながらサービスを作っていく言語
です。
そのようなRubyはオブジェクトでできています。
オブジェクトとは何かを一言で表現すうるのは難しいのですが、
何かのクラスのインスタンス
です。
Rubyにはそれぞれインスタンス、メソッド、クラス
を持っています。
この3つをもとに説明して行きます。
クラスとインスタンス
オブジェクト指向を理解するにはクラスとインスタンスの理解は必須です。
クラスとは設計図のことです。
インスタンスは設計図をもとに作られた実体です。
●家を例にします。
家の設計図がクラス。その設計図をもとに作られた家がインスタンスです。
設計図があればいろいろな家を作れますよね。
赤い色の家も作れますし、黄色い家も作れます。
設計図があれば同じような家をたくさん作れます。
もっといい性能の家を作りたければ、設計図を修正すれば
1つ1つの家を建て替えたりする必要はなくなり、毎回毎回性能のいい家に住めます。
このような考えをコードでも実践できます。
オブジェクト指向の3大要素
1クラス(カプセル化)
メソッドを定義
することにより何をやっているのかをわかる
ようにします。
つまり内部に何が入っているのかは意識せず、指示や命令を与えることができます。
2ポリモーフィズム
同じ種類のものでもそれぞれ異なるものとして動く仕組みのことです。
例えば人間で例えると
人間という生き物は共通しているけど、名前や性別、などみんなそれぞれ違いますよね。
こんな感じのイメージです。
3継承
設計図をもとに同じような性能を持ったものを作ることです。
例えば、
設計図が車だとすると、その車をもとに、
フェラーリやランボルギーニを作れます。
車に少し性能を加えたものを作ることができます。
最後に
説明が足りない部分もありましたが
一通りのことはまとめました。
大事な概念なのでいろいろ調べてみてください。
オブジェクト指向の使い方
オブジェクト指向の使い方は3段階に別れます。
1 ***設計 ***
2 作成
3 使用
それぞれ見ていきます。家を作るときに例えます。
1.設計
まず家を作るときに設計します。
そのイメージです。
class home #クラス(設計図)
def living #仕様(メソッド)
end #仕様(メソッド)
end #クラス(設計図)
2.作成
設計図をもとに大工さん(newメソッド)が家(インスタンス)を作ります。
@home = Home.new
これがインスタンスの実態です。
3.使用
大工さんが作った家を使います。使う時は
1 .メソッド名
2 インスタンスが入った変数.メソッド名
@home.door
みたいなイメージです。
最後に
説明が足りない部分もありましたが、一通りのことはまとめました。
大事な概念なのでいろいろ調べてみてください。
参考資料