Return to Tech/ruby

Class

Class

file:test_class.rb
class Human
def initialize(defname = "Noname")
@name = defname
end

def sayHello
puts("[#{@name}] Hello, My name is #{@name}")
end

def name
@name
end

def name=(newname)
@name = newname
end
end

# クラスHumanをインスタンス化
human = Human.new("Human01")

human.sayHello

human.name = "Armstrong"
human.sayHello

puts("[#{human.name}] I am hungry")


実行例 $ ruby test_class.rb [Human01] Hello, My name is Human01 [Armstrong] Hello, My name is Armstrong [Armstrong] I am hungry
accessor # 他言語put, get, set, get属性との関連性 Rubyでは 以下の定義で簡単に定義可能です attr_reader :name # Read対応 以下の定義を一行で実装できます。 def name @name end attr_writer :name # Write対応 def name=(newname) @name = newname end attr_accessor :name # Read, Write両対応 Read, Writeの定義を一行で実装できます。

Return to Tech/ruby