はじめに
これは学習用のメモになります。
Rubyでは、「オブジェクト」や「変数」などたくさん用語が出てきて大変なので、少しずつでも理解を早めるために自分なりにアウトプットしていきたいと思います。
もし、違うところがあればコメントしていただけると幸いです。
クラスとインスタンスとは?
クラスとインスタンスを理解するためには「オブジェクト」と「メソッド」という言葉を理解する必要があります。
説明は以下...
オブジェクト
オブジェクトとは「Rubyにおける全てのデータ」
のことです。
例えば「おはよう」といったような文字は「文字列オブジェクト」、「123」といった数字は「数値オブジェクト」と呼ばれています。
メソッド
オブジェクトが持つ「処理」
のことをメソッドと言います。
Rubyのオブジェクトは全て「メソッド」を持っています。
例えばこんな感じで、
・文字列オブジェクト → lengthメソッド → 文字数を数える
・数値オブジェクト → to_sメソッド → 整数に変換する
といったようにオブジェクトの種類ごとに持っているメソッドが違います。
例えると、人はそれぞれ性格が違うよねってことです。
クラス
クラスとは「共通のプロパティとメソッドをまとめたもの」
のことで、今回は、「クルマの設計図」を例として考えます。
クルマを作る時には設計図が必要ですが、どのクルマにも共通する部分があるわけです(ハンドル・ブレーキで「加速する」など)。その「共通した部分を設計図にしてまとめよう」ってことです。
つまり、クラス(設計図)を作って、他のクルマを作る時でも使えるようにできる仕組みです。
インスタンス
インスタンスは「クラスから属性や処理を受け継いでできたオブジェクト」
のことです。
クラス(設計図)をベースに作られたオブジェクト(クルマ)といえばわかりやすいでしょうか。必要最低限の部分を引き継いでいるので、「ハンドルがあって〜」一からなどど設計図を作らなくて済むのがメリットになります。