class TypicalClass NAME = 'typical' # クラス定数 @@magic_value = 0x3092 #クラス変数 # クラスメソッド def self.change_magic(x) @@magic_value ^= x end # オブジェクトの初期化メソッド def initialize(init_value) @value = init_value # インスタンスメソッド end attr_accessor :value # インスタンス変数にアクセッサを追加 # インスタンスメソッド (アクセス修飾子なしの場合はpublic) def calc @value = magic end # このprivate以降に定義したメソッドはすべてprivateメソッドになる private def magic @value ^ @@magic_value end def hello # このメソッドもprivate $stdout.puts 'hello' end end
実行:
# クラス定数を参照する場合は、「クラス名::定数名」 $stdout.puts TypicalClass::NAME # typical c = TypicalClass.new(32) $stdout.puts c.calc # 結果 : 12466 TypicalClass.change_magic 825 $stdout.puts c.calc # 結果 : 793
selfキーワード
現在実行中のオブジェクトを示す。
TypicalClassのClassオブジェクト自身のメソッド(=クラスメソッド)だと定義している。