»クラスはてなブックマークに追加はてなブックマークを見る

Rubyにおけるクラス

»クラス構文

class Sample
  @val
  
  def initialize(val)
    print "@val = #{@val}\n"
    @val = val
    print "initialized: #{@val}\n"
  end

  def set(newval)
    @val = newval
  end

  def show
    print "@val = #{@val}\n"
  end
end

s = Sample.new(123)

# NoMethodError
# s.val = 456

s.set('abc')
s.show

実行結果

@val =
initialized: 123
@val = abc

»アクセス修飾子、アクセサ

class Sample
  attr_accessor :val
  
  def initialize(val)
    print "@val = #{@val}\n"
    set(val)
    print "initialized: #{@val}\n"
  end

  def set(newval)
    @val = newval
  end
  private :set
end

s = Sample.new(123)

# NoMethodError
# s.set('abc')
s.val = 456

print "s.val = #{s.val}\n"

実行結果

@val =
initialized: 123
s.val = abc

Sponsored Link