class A
@a = 1 # เป็น global ใน Class
class << self # กำหนด ให้ เป็น A ทำงานได้ เลย
attr_accessor :a #ให้ A.a ทำงานได้
end
def pp # print ค่า. แบบ Local
p @a
end
def sp(n) # set ค่า local
@a=n
end
def ppp # print ค่า แบบ Static
p A.a
end
def spp(n) #set ค่า แบบ Static
A.a=n
end
end
A.a จะได้ 1
A.pp จะ error เพราะไม่มีเนื้อ
ia = A.new
ia.a จะได้ null
ia.pp จะได้ null
ia.ppp จะได้ 1
ia.sp(2)
ia.pp จะได้ 2
ib= A.new
ia.spp(4)
ia.ppp จะได้ 4. share A.a ตัวเดียวกัน
ib.ppp จะได้ 4