プログラミングを勉強していると基本的な概念を学ぶ必要があります。
Rubyでは、「オブジェクト」や「変数」などたくさん用語が出てきて大変なので、少しずつでも理解を早めるために自分なりにアウトプットしていきたいと思います。もし「ここが違うよ!」ってところがあったらご指摘いただけたら嬉しいです。
クラスとインスタンスとは?
そもそもクラスとインスタンスを理解するためには「オブジェクト」と「メソッド」という言葉を理解する必要があります。
ざっくりとした説明は以下から。
###オブジェクト
「Rubyにおける全てのデータ」のことです。例えば「おはよう」といったような文字は「文字列オブジェクト」、「139」といった数字は「数値オブジェクト」と呼ばれています。
###メソッド
オブジェクトが持つ**「処理」のことをメソッドと言います。
Rubyのオブジェクトは全て「メソッド」を持っています。
例えばこんな感じで、
・文字列オブジェクト → lengthメソッド → 文字数を数える
・数値オブジェクト → to_sメソッド → 文字列化する
といったようにオブジェクトの種類ごとに持っているメソッドが違う**わけですねー。
例えると、それぞれのモンスターが使える技はモンスターによりけりだよねって話です。
###クラス
前置きが長くなりましたが、ここからが本題です。
クラスとは「共通のプロパティとメソッドをまとめたもの」のことで、よく「クルマの設計図」として例えられることが多いです。クルマを作る時には設計図が必要ですが、どのクルマにも共通する部分があるわけです(ハンドル・ブレーキで「加速する」など)。その「共通した部分を設計図にしてまとめようぜ」ってことです。つまり、クラス(設計図)を作って、他のクルマを作る時でも使えるようにできる仕組みですね。これは便利。
###インスタンス
インスタンスは「クラスから属性や処理を受け継いでできたオブジェクト」のことです。
クラス(設計図)をベースに作られたオブジェクト(クルマ)といえばわかりやすいでしょうか。必要最低限の部分を引き継いでいるので、「ハンドルがあって〜」一からなどど設計図を作らなくて済むのがメリットだと解釈しております。
#クラスを定義してみると
実際にコードを書いてみるとこんな感じになります。
class Apple(クラス名)
# メソッドの定義
end
classとendで囲ってあげると完成です。
インスタンスを生成すると
インスタンスはこんな風に作ることができます。
# newメソッドでクラス名を指定し、変数に定義
orange(変数名) = apple(クラス名).new
さらに定義したインスタンスをこんな感じ出力します。
puts orange
そしてターミナルでruby ファイル名.rb
とすると、実行されるということです。
#感想
こうやって記事にすることで、イマイチ理解していなかったことが整理できて大変よかったなぁと思いました。
定期的に書いていく予定なので、よかったら見ていってもらえると今後の励みになります。
ご覧いただきありがとうございました!