0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Ruby】クラスとインスタンス

Last updated at Posted at 2020-10-15

はじめに

Rubyでは予め定義されている値とは別に、自分で新しい種類の値を作成することができます。

その際「どんな特性を持つのか?」、「どんな動作をするのか?」などの設計図を用意して、作成できます。

新しい種類の値を作成するために必要な概念が、「クラス」「インスタンス」です。

クラスとは

値の元となるもの。値の共通のルールを定義することができます。
ここで定義するルールとは、共通の「属性」と「処理(メソッド)」です。

クラスを使用する利点は、共通の情報をまとめ、個別の情報は各データごとに分けることで、開発・管理・保守が容易になるといったことが挙げられます。

クラスは例えるならば、車の製造における設計図であり、そこから生み出される値が車といえます。
クラスはあくまで設計図ですので、実体がなくそれ単体ではデータとして扱うことができません。

クラスの定義は以下のように行います。

class クラス名
  # 変数やメソッドの定義
end

クラス名は半角英大文字から始めるのがルールです。
(例)User,Groupなど

インスタンスとは

クラスを元にして作られるデータのことです。 インスタンスはクラスとは異なり、実体を持つのでデータとして使用することができます。 クラスが車の設計図であるならば、インスタンスはそこから生成される車といえます。

インスタンスは、クラスが使用できるnewメソッドを実行することにより生成します。

newメソッドとは

クラスが予め持っているメソッドです。 使用したクラスのインスタンスを生成して返します。

使い方は以下のような形です。

#ここではインスタンスを生成し、変数に代入している
変数名 = クラス名.new

基本的には上記のように、生成したインスタンスは変数へ代入し、再利用します。
これは、インスタンスを生成したあとからデータを追加したり、メソッドを実行できるようにするためです。

以下で実際にクラス名を指定して、インスタンスを生成します

class Car

end

fire_truck = Car.new

これで「Car」というクラスからインスタンスを生成し、「fire_truck」という変数に代入することができました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?