Ruby超入門 2周目 CHAPTER8-5 オブジェクトが作られるときに処理を行う まで

f:id:kkouji0224:20191029231558p:plain

『ゼロからわかる Ruby 超入門 (かんたんIT基礎講座) 』
github.com

 

なんだか今日は調子の良い一日だった。そんな感じ。こんばんはkoujiです。

 

はーい!それじゃ今日も振り返っていきまーっす!!

 

initializeメソッド

 

class Baby
    def initialize
        puts "オギャー!!オギャー!!"
    end
end

Baby.new

 

 initializeってメソッドは特別なメソッドで、これを書いてあげるとオブジェクトが新しく作られた時に自動で呼び出されるんだよ!上のプログラムだとBaby.newで新しくオブジェクトが作られると自動で「オギャー!!オギャー!!」って泣く感じですねぇ…

 

 

initializeメソッドでインスタンス変数の初期値を設定

 

class Alc
    def initialize
        @order = "生中"
    end
    def order
        @order
    end
end

alc = Alc.new
puts alc.order

 

上の場合だとAlc.newで新しいオブジェクトが作成されると、initializeメソッドが自動で呼び出されて@orderに"生中"が代入される感じ。それが初期値になるんだねぇ。orderメソッドを呼ぶと、戻り値が"生中”になってるよーって話だね!やっぱり最初は生中だね。

 

 

initializeメソッドに引数を渡す

 

class Alc
    def initialize(order)
        @order = order
    end
    def order
        @order
    end
end

alc = Alc.new("生中")
puts alc.order

 

はーい。initializeメソッドにも引数渡せますね!initialize(変数)で、この場合はorderだね。で、それを@orderに代入すると。なので上の場合だとAlc.new("生中")でオブジェクト作成時に引数として"生中"を渡してる。で、その生中がinitialize(order)のorderに渡されて、それが@orderに代入されてるって感じだね!なのでputs alc.orderでorderメソッドを呼び出すと戻り値は"生中”になってるよ!

 

class Alc
    def initialize(order)
        @order = order
    end
    def order
        @order
    end
end

alc1 = Alc.new("生中")
alc2 = Alc.new("ハイボール")
alc3 = Alc.new("ウーロンハイ")
puts alc1.order
puts alc2.order
puts alc3.order

 

 上みたいな感じで書くと色々なオブジェクトが作れるね。例えば3人で飲みに行ったとするじゃん。それぞれ最初に注文するものがそれぞれ異なる。生中であったりハイボールであったりウーロンハイであったりね。1くんは生中 2くんはハイボール 3くんはウーロンハイみたいな。そんな感じ!どんな感じやねんって感じだけれど…

 

ってことで、今日はinitializeメソッドでしたぁ〜。しかしこれも便利だねぇ。

 

それにしてもこうやって自分なりに丁寧に復習していくと、それってそういうことだったのねみたいなのもすごく多くて、全然理解してなかったんだなぁと思う反面、なんか少しわかってきたんじゃないの俺?みたいな感じでスローペースだけど面白さが増してくる感じが堪りませんなー。

 

ってことで明日は少し早めに起きないといけないので短いけど今日はこの辺で!

 

アディオス!