Ruby:◇オブジェクトとメソッド ・・・ 【Ruby:10歩目】
2008-07-16
第10歩◇オブジェクトとメソッド
□オブジェクトは「メソッド」を持っている
□オブジェクトに対して「メソッド」を呼ぶ ・・・ には
・文字列オブジェクト "Rubyは楽しい\n"
・メソッド chomp 末尾の改行文字を取り除いた文字列の取得
の場合
p "Rubyは楽しい\n".chomp #=> "Rubyは楽しい"
> 確認したつまり、
「オブジェクトの後ろに、.メソッド名 とすれば
そのオブジェクトが持つメソッドを呼び出すことが出来る」
そして
「オブジェクトが どのようなメソッドを持っているかは
・オブジェクトの種類
どのクラスに属しているか
で決まる」
オブジェクト.メソッド名
と記述した場合"オブジェクト" の部分を「レシーバ」と呼ぶ
+++++++++++++++++++++++++++++++++++
・[オブジェクトが持つメソッドの例]
+++++++++++++++++++++++++++++++++++
・文字列オブジェクト の場合
・メソッド to_i 文字列オブジェクトを数値オブジェクトに変換
a = "500"
b = "300" # この段階ではダブルクォーテーション囲みで文字列オブジェクト
p a.to_i + b.to_i #=> 800 それぞれを数値オブジェクトに変換してから計算
> 確認したb = "300" # この段階ではダブルクォーテーション囲みで文字列オブジェクト
p a.to_i + b.to_i #=> 800 それぞれを数値オブジェクトに変換してから計算
・メソッド to_s 数値オブジェクトを文字列オブジェクトに変換
a = 500
b = 300 # この段階数値オブジェクト
p a.to_s + b.to_s #=> 500800 それぞれを文字列オブジェクトに変換してから計算
> 確認したb = 300 # この段階数値オブジェクト
p a.to_s + b.to_s #=> 500800 それぞれを文字列オブジェクトに変換してから計算
「ただし、メソッドを呼び出しそれに対応した値を返すだけで
変数そのものの値を 変換するものではない」
つまり上記は
a = 500
b = 300 # この段階数値オブジェクト
p a.to_s + b.to_s #=> 500800 だけれども
a,b 自体はb = 300 # この段階数値オブジェクト
p a.to_s + b.to_s #=> 500800 だけれども
それぞれ数値のままでこのまま
p a + b #=> 800 数値としての計算
> 確認した置き換える場合は再代入を行う
a = 500
b = 300 # この段階数値オブジェクト
a = a.to_s
b = b.to_s
p a + b #=> 500800
> 確認したb = 300 # この段階数値オブジェクト
a = a.to_s
b = b.to_s
p a + b #=> 500800