Rubyにおけるクラスの定義方法サンプル
[履歴] [最終更新] (2016/01/09 13:58:36)
最近の投稿
注目の記事

サンプルプログラム

sample.rb

class Animal             # クラス名は大文字で開始する必要がある (定数と同じ)
  @@class_var = 'ANIMAL'   # クラス変数 (定数と区別)
  ANIMAL_CONST = 'ANIMAL CONST'  # 定数
  def self.class_method; puts 'class method' end  # C++などのstaticメソッド
  def instance_method; puts 'instance method' end
end

class Dog < Animal  # Rubyでは多重継承はできない (モジュールという代替機能がある)
  def initialize(name, age=1)  # いわゆるコンストラクタ (Rubyではinitializeを定義)
    @name = name    # メンバ変数
    @age = age
  end
  attr_accessor :name, :age  # アクセサ (getterだけならattr_reader, setterだけならattr_writer)
end

class Dog  # メソッド追加 (継承関係の記述は省略可能)
  def instance_method2; puts 'instance method 2' end
end

Dog.class_method
p Dog::ANIMAL_CONST

dog = Dog.new('sample name')
dog.instance_method
dog.instance_method2

dog.age *= 99
p dog.age
p dog.name

出力例

$ ruby sample.rb 
class method
"ANIMAL CONST"
instance method
instance method 2
99
"sample name"
関連ページ