はじめに
Rubyでは予め定義されている値とは別に、自分で新しい種類の値を作成することができます。その際「どんな特性を持つのか?」、「どんな動作をするのか?」などの設計図を用意して、作成できます。
新しい種類の値を作成するために必要な概念が、「クラス」と「インスタンス」です。
クラスとは
値の元となるもの。値の共通のルールを定義することができます。
ここで定義するルールとは、共通の「属性」と「処理(メソッド)」です。
クラスを使用する利点は、共通の情報をまとめ、個別の情報は各データごとに分けることで、開発・管理・保守が容易になるといったことが挙げられます。
クラスは例えるならば、車の製造における設計図であり、そこから生み出される値が車といえます。
クラスはあくまで設計図ですので、実体がなくそれ単体ではデータとして扱うことができません。
クラスの定義は以下のように行います。
class クラス名
# 変数やメソッドの定義
end
クラス名は半角英大文字から始めるのがルールです。
(例)User,Groupなど
インスタンスとは
クラスを元にして作られるデータのことです。 インスタンスはクラスとは異なり、実体を持つのでデータとして使用することができます。 クラスが車の設計図であるならば、インスタンスはそこから生成される車といえます。インスタンスは、クラスが使用できるnewメソッドを実行することにより生成します。
newメソッドとは
クラスが予め持っているメソッドです。 使用したクラスのインスタンスを生成して返します。使い方は以下のような形です。
#ここではインスタンスを生成し、変数に代入している
変数名 = クラス名.new
基本的には上記のように、生成したインスタンスは変数へ代入し、再利用します。
これは、インスタンスを生成したあとからデータを追加したり、メソッドを実行できるようにするためです。
以下で実際にクラス名を指定して、インスタンスを生成します
class Car
end
fire_truck = Car.new
これで「Car」というクラスからインスタンスを生成し、「fire_truck」という変数に代入することができました。