今回は、Rubyを学習していて最初に必ずつまずくと言っても過言ではない「クラスとインスタンス」について簡単にまとめてみました。
クラスとインスタンス
クラスとは
クラスとは、あるものを作る時の設計図のことです。
インスタンスとは
インスタンスとは、クラス(設計図)から作られた「もの」のことです。
関係性
クラスとインスタンスの関係性を図まとめると、以下のようになります。

インスタンス生成までの流れ
それでは次に、クラスからインスタンスを生成するまでの流れを見てみましょう。
流れは以下の通りです。
- クラス(設計図)を作成する
- 空白のクラス(設計図)に情報(設計情報)を書き込んでいく
- クラス(設計図)を基に、インスタンス(もの)を作る
- インスタンス(もの)に情報を与える
上の説明だけだと難しいので、クラスとインスタンスを家で例えてみます。
- 設計図を書き込む用紙(クラス)を準備する
- 用紙に設計情報を書き込んでいく
- 書いた設計図を基に、家(インスタンス)を建てる
- 建てた家に情報(住所やアパート名)を与える
これがインスタンスを生成するまでの一連の流れです。
それでは実際に、手順通りにコードを書き込んでいきましょう。
クラス(設計図)を作成する
以下のよう記述することで、クラスを定義することができます。
class House
end
クラス名は必ず大文字から始めなければいけない点に注意しましょう。
これで、家でいう白紙の設計図が作られたことになります。
-2-1024x576.png)
空白のクラス(設計図)に情報(設計情報)を書き込んでいく
次に空白のクラス(設計図)に情報(設計情報)を書き込んでいきます。
設計情報を書き込むには、「attr_accessor :」のように記述します。
class House
attr_accessor :name # インスタンス変数
attr_accessor :price # インスタンス変数
end
上記コードの、nameとpriceはインスタンス変数と呼ばれています。
家の場合は以下のようになります。

クラス(設計図)を基に、インスタンス(もの)を作る
クラス(設計図)を元に新しくインスタンス(もの)を生成するには、「クラス名.new」とします。
class House
attr_accessor :name # インスタンス変数
attr_accessor :price # インスタンス変数
end
house = House.new
家の場合は以下のような感じです。
-1024x576.png)
インスタンス(もの)に情報を与える
最後にインスタンス(もの)に情報を与えていきます。
インスタンスに情報をもたせるには、クラスで用意したインスタンス変数に値を代入します。
正確には、「インスタンス.変数名 = 値」と記述することで、情報を持たせることができます。
class House
attr_accessor :name # インスタンス変数
attr_accessor :price # インスタンス変数
end
house = House.new
house.name = "おもしろ荘"
家で表すとこんな感じです。
-1-1024x576.png)
また「インスタンス.変数名」とすることで、インスタンス変数の値を用いることができるので、併せて覚えておきましょう。
class House
attr_accessor :name # インスタンス変数
attr_accessor :price # インスタンス変数
end
house = House.new
house.name = "おもしろ荘"
puts house.name # => おもしろ荘
まとめ
クラスとインスタンスをまとめると、こんな感じになります。
-3-1024x576.png)
今回はプログラミング学習者が最初に必ずつまずくといっても過言ではない、「クラスとインスタンス」について解説しました。