# list0203.rb
# クラス変数と返り値
class NameCard
@@allnum = 0
def initialize(name,age)
@name = name
@age = age
@@allnum = @@allnum + 1
@num = @@allnum
end
def show
print "学籍番号:",@num," 氏名:",@name," 年齢:",@age,"\n"
end
def who1
return @name # インスタンス変数の指すオブジェクトを返す。
end
def who2
return @name.dup # インスタンス変数の指すオブジェクトを複製したものを返す。
end
def who3
return @name+"様" # 「+"様"」の結果のオブジェクトを返す。
end
end
# メインルーチン
p1 = NameCard.new("湖山二郎",19)
p2 = NameCard.new("鳥大太郎",20)
p3 = NameCard.new("鳥取花子",19)
x = p1.who1
x << "君"
puts p1.who1
y = p2.who2
y << "君"
puts p2.who1
z = p3.who3
z << "君"
puts p3.who3