0
1

More than 3 years have passed since last update.

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

Posted at

クラスは属性、メソッドを定義する場所
インスタンスはクラスに基づいた実態を作成する

流れ
クラスの生成

class クラス名(頭文字は大文字)
end

クラスメソッドを定義する
定義

class クラス名(頭文字は大文字)
 def self.メソッド名
 end
end

呼び出し

クラス名(頭文字は大文字).メソッド名(引数)

インスタンスの生成 newメソッドをつかう

変数 = クラス名(頭文字は大文字).new

インスタンスメソッドの生成
※インスタンス定義のクラス内で生成する必要


def メソッド名
end

呼び出し
インスタンス.メソッド名

クラス変数
クラス内であればどこでも使用できる変数。クラスメソッド、インスタンスメソッドどちらでも使用できる
定義
クラスの定義内で定義する

class クラス名
    @@クラス変数
  end

インスタンス変数
インスタンス内で使用できる変数。インスタンスメソッドの中でのインスタンス変数(@が付いた変数)の値は、そのインスタンスメソッドを利用したインスタンスが持つインスタンス変数の値になる
定義

def インスタンス名
  @インスタンス変数 = gets.chomp
end

クラス変数はクラスで共通の変数となる
インスタンス変数はインスタンス内で共通の変数となる

initializeメソッド
インスタンスメソッドが生成されたと同時に実行されるインスタンスメソッド

def initialize
  変数の定義など
end
0
1
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
1