アマグラミング

プログラミング初心者が勉強したことを復習とメモがてら書いているだけです。

(45)initializeメソッドについて学ぼう

インスタンスメソッドの中でinitializeメソッドというものがあります。

 

このメソッドをクラス内に書いておくと、オブジェクトを作った時に

自動的に呼び出されます。

 

intializeメソッドを使うことでオブジェクト作成時に必ず実行したい処理を

メソッドを呼び出すことをせずに実行できます。

 

ちょっと書いてみましょう。

 

class Cats

  def initialize()

    @species = "猫は猫種差別をしないにゃ"

        puts @species

  end

end

 

cats = Cats.new()

 

 

普通にインスタンスメソッドを使うと

 

class Cats

def nameless()

@species = "猫は猫種差別をしないにゃ"
puts @species

end

end

 

cats = Cats.new()

cats.nameless()

 

こんな感じかな

 

注意点はinitializeのつづりを間違えないことです。

なぜなら私が間違えたからです。

ソースは私だよっと。

 

initializeメソッドには引数を指定できます。

他と変わらずinitializeメソッドも呼び出す時に引数を渡せますが、

initializeメソッドは自動的に呼び出されるのでnewメソッドに渡す引数を指定します。

 

だから書くと

class Cats

def initialize(catName)

@species = "#{catName}は猫種差別をしないにゃ"
puts @species

end

end

 

cats = Cats.new("マイケル")

 

こんな感じ

f:id:tiroru17:20170618014325p:plain

 

 newメソッドでオブジェクトを作ると同時に呼び出されるようですね

メソッド呼び出しなしというか・・・なんというか。

 

次の記事です

tiroru17proguram.hatenablog.com