FrontPage  Index  Search  Changes  Login

niche programmer - (Ruby)クラス・オブジェクト Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

!クラス・オブジェクト
!!インスタンス属性へのアクセッサメソッドを作成するショートカット。
class Foo
     def initialize(hoge, fuga)
         @hoge = hoge
         @fuga = fuga
     end
     attr_reader :hoge, :fuga
end
aFoo = Foo.new("hoge", "fuga")
aFoo.hoge    #=>"hoge"
aFoo.fuga    #=>"fuga"

!!属性を代入可能にする
class Foo
     def foo=(newFoo)
         @foo = newFoo
     end
end
aFoo = Foo.new
aFoo.foo = "newFoo"

class Foo2
     def initialize(hoge, fuga)
         @hoge = hoge
         @fuga = fuga
     end
     attr_writer :hoge, :fuga
end
aFoo = Foo.new("hoge", "fuga")
aFoo.hoge = "hoge2"
aFoo.fuga = "fuga2"

!! クラスメソッド
rubyではクラスメソッドは「クラス.メソッド」で定義する。
class Foo
     def Foo.bar
         #なんらかの処理
     end
end
!!アクセス制御
class Foo
     def method1
     end
protected
     def method2
     end
private
     def method3
     end
end

class Foo2
     def method1
     end
     def method2
     end
     def method3
     end
public :method1
protected :method2
private :method3
end