kyopa’s blog

自分用プログラミングアウトプット

現実世界では、すべてのものは型からつくられる
 
たいやきもパソコンも型があって加工する
そんなイメージ
 
クラス  型 設計図                例  家 設計  
 
インスタンス(実体) 加工   例  作成 (家を)   
 
インスタンス 実装する     例  家を使う
 
 
たいやきの型 = クラス
 
たいやき = インスタンス
 
 
すでに定義されているクラスを拡張して新しいものを作る
継承という
 
オブジェクトの生成
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 >