すでにメンバーの場合は

無料会員登録

GitHubアカウントで登録 Pikawakaが許可なくTwitterやFacebookに投稿することはありません。

登録がまだの方はこちらから

Pikawakaにログイン

GitHubアカウントでログイン Pikawakaが許可なくTwitterやFacebookに投稿することはありません。

Ruby

【Ruby】 インスタンスとは何か?特徴を理解しよう!

ぴっかちゃん
ぴっかちゃん

インスタンスとは、あるクラスから生まれたオブジェクトで、クラスで定義した属性を持つものです。

インスタンスの基礎知識

インスタンスって何?

クラスから生成されたオブジェクトをインスタンスと呼びます。
ではクラスとはなんだったでしょうか?

クラスはいわばインスタンスを作るための型のようなものです。
クラスについて詳しくは、たい焼きで理解するオブジェクト指向におけるクラスの概念を参考にしてください。

クラスで定義された属性などがセットされて生まれるのがインスタンスです。
ではわかりやすく車を例に見てみましょう。
車が持つ主な性能としてはハンドルとブレーキとクラクションがありますね。
これはどんな車にも共通しています。
あとはそれぞれ名前があり、ボディカラーがあったりします。

こういったものを新しく車のオブジェクトを作るたびに設定していたのでは非常に大変です。
ですのでクラスという型にあらかじめこのようなものをセットしておき、その型からオブジェクトを作り出せば上のような特徴を持ったインスタンスとして簡単に作成できます。

では実際にインタンスを作成してみましょう。
インスタンスの作成にはnewメソッドを使用します。

1
2
3
4
5
6
7
8
9
10
11
class Car
  def initialize(name)
    @name = name
  end

  def klaxon
   puts "プーーーーーー!"
  end
end

car = car.new("ベンツ")

ここで定義されているinitializeメソッドはインスタンスが生成された時に自動で実行されるメソッドです。
これでnameという属性に「ベンツ」という値がセットされました。

Carクラスから生成されたcarというインスタンスはベンツという固有の名前をもち、klaxonというメソッドを使うことができます。
この1行だけでこれだけの情報を持ったオブジェクトが作成できるので、非常に便利ですよね!

初学者の方は、こちらの参考書を読んでインスタンスやオブジェクトについて理解を深めましょう。

この記事のまとめ

  • インスタンスとは、あるクラスから生まれたオブジェクトのこと
  • クラスはいわばインスタンスを作るための型のようなもの
  • クラスで定義した属性を持つことができる大変便利なもの!