# 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