■
オブジェクト指向とは
現実世界では、すべてのものは型からつくられる
たいやきもパソコンも型があって加工する
そんなイメージ
クラス 型 設計図 例 家 設計
インスタンス(実体) 加工 例 作成 (家を)
インスタンス 実装する 例 家を使う
たいやきの型 = クラス
たいやき = インスタンス
すでに定義されているクラスを拡張して新しいものを作る
継承という
オブジェクトの生成
2.4.0 :001 > class House
2.4.0 :002?> end
=> nil
2.4.0 :003 > House.new
=> #<House:0x000000012c1360>
2.4.0 :004 > exit
メゾットを入れた場合はドアがかえってくる
2.4.0 :001 > class House
2.4.0 :002?> def door
2.4.0 :003?> end
2.4.0 :004?> end
=> :door
2.4.0 :005 > House.new
=> #<House:0x00000000d6a600> 16進数で作られている。
2.4.0 :006 > exit
インスタンスを生成して連続性をもたせる
たくさん使うため
2.4.0 :001 > class House
2.4.0 :002?> def door
2.4.0 :003?> puts "Open the door."
2.4.0 :004?> end
2.4.0 :005?> end
=> :door
2.4.0 :006 > @house = House.new
=> #<House:0x00000000d61ed8>
2.4.0 :007 > @house.door
Open the door.
=> nil
メゾットを呼び出した時に
引数と戻り値2つ返答される
今回は
戻り値がないためぬるが返答された
puts(*arg) -> nil
ルビーはメゾットの最後に出力した値が戻り値となる
Putsは戻り値がぬると定義されている
デバックや引数を知りたいときに使用するため・・・
データを保持できるもの
そうする事でなんかいも生成しなくてもいい
複雑な処理をしなくてもいい
2.4.0 :001 > class Child
2.4.0 :002?> def initialize(name)
2.4.0 :003?> @name = name
2.4.0 :004?> end
2.4.0 :005?> end
=> :initialize
2.4.0 :006 > Child.new("ぱぱ")
=> #<Child:0x00000001986ad8 @name="ぱぱ">
2.4.0 :007 >
2.4.0 :008 >
2.4.0 :009 > Child.new("まま")
=> #<Child:0x0000000197dcf8 @name="まま">
2.4.0 :010 >