Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@absld43

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

はじめに

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

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

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

クラスとは

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

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

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

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

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

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

インスタンスとは

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

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

newメソッドとは

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

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

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

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

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

class Car

end

fire_truck = Car.new

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

0
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
absld43
アウトプット用

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?