0
0

Rubyのクラスとインスタンスについて

Posted at

概要

自分自身が初めてクラスとインスタンスを学習した際に苦労したため、その際にメモしたものをアウトプットの練習を兼ねて記事にしました。
自分自身まだまだ知識が浅く間違いがあるかもしれませんが、その際は優しくご指摘・アドバイス頂けると幸いです。
よろしくお願いします。

クラスとインスタンスの概要

クラスとインスタンスの関係は設計図とその設計図から作られた実物体というような説明がよくされます。
これは後々でてくるnewメソッドを使ったインスタンスの作成方法の部分で上記の説明がわかると思います。
クラスから作られたインスタンスは共通の性質を持ちながらも、そのインスタンスごとに特有の性質を持たせることができるようになります。

クラスの定義方法

クラスの定義にはclassというキーワードを使います。
例えばHumanクラスというクラスを作るとします。

class Human
    # このなかにクラスのメソッドや持たせたいデータを書いていく
end

インスタンスの作成方法

インスタンスは先ほどのクラスに対してnewメソッドを呼び出すことで作成できます。
Human.newとするだけです。
これによりクラスからインスタンスを作成することができます。
また、インスタンスの作成時に使えるメソッドとしてinitializeメソッドがあります。
このメソッドはインスタンスの作成時に自動で呼び出すことができるメソッドです。

class Human
    # このなかにクラスのメソッドや持たせたいデータを書いていく
    def initialize
        #インスタンス生成時に実行したい処理を書く
    end
end

インスタンス変数とインスタンスメソッド

インスタンス変数はインスタンスごとに保持できる値を変えられる変数になります。
また、インスタンスメソッドはクラスのインスタンスに対して呼び出せるメソッドです。

class Human
    # このなかにクラスのメソッドや持たせたいデータを書いていく
    def initialize(name)
        # インスタンス生成時に実行したい処理を書く
        # インスタンス変数
        @name = name
    end
    # インスタンスメソッド
    def show_name
        puts @name
    end
end

インスタンス変数とインスタンスメソッドを定義すると上記のようなコードになります。

アクセサメソッド

Rubyでゲッターとセッターを定義する際に便利なattr_accessorメソッドというものがあります。

def クラス名
  attr_accessor :age 
end

上記のように変数を書くことによりゲッターとセッターを自動で定義してくれます。

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