【Ruby】クラス
基本的な書き方はこんな感じ
(1)クラスの初期化
initializeメゾットを利用します
class MyClass
def initialize
puts 'Initialize'
end
end
obj = MyClass.new ⇒「Initialize」と表示
これはオブジェクト指向をかじっていればおなじみのって感じですかね
(2)インスタンスメゾット
class MyClass
attr_accessor :number ⇒インスタンス変数を操作するために「attr_accessor」を定義
obj = MyClass.new
puts obj.hoge ⇒「hoge」と表示
obj.number = 100
puts obj.number ⇒「100」と表示
attr_accessorのようなものはPerlやPHPにはなかった(ような気がするので)のでちょっと慣れない感じです。。。
(3)クラスメゾット
クラスメゾットの場合は「self.[メゾット名]」になるみたいです。
素朴な疑問でこれを使うケースってどんなケースなんだろう??
インスタンスメゾットでやってしまってもいいような気も。。。。
こんな書き方もできるみたいです。
この書き方は特異クラスと言うみたいで、クラスメゾットをまとめて書けて、ネストすることでインスタンスメゾットとの区別がしやすいというメリットがあるらしいです。
ただ自分はまだこの書き方のメリットが理解できてません(笑)
(4)クラスの継承
class Car
def put_class
puts 'Car'
end
end
class WagonR < Car
end
puts WagonR.superclass ⇒「Car」と表示
obj = WagonR.new
obj.put_class ⇒「Car」と表示
「class SubClass < SuperClass」とすればよいみたいです