# Class names must be capitalized. Technically, it's a constant.
class Fred
# The initialize method is the constructor. The @val is
# an object value.
def initialize(v)
@val = v
end
# Set it and get it.
def set(v)
@val = v
end
def get
return @val
end
end
# Objects are created by the new method of the class object.
a = Fred.new(10)
b = Fred.new(22)
print "A: ", a.get, " ", b.get,"\n";
b.set(34)
print "B: ", a.get, " ", b.get,"\n";
# Ruby classes are always unfinished works. This does not
# re-define Fred, it adds more stuff to it.
class Fred
def inc
@val += 1
end
end
a.inc
b.inc
print "C: ", a.get, " ", b.get,"\n";
# Objects may have methods all to themselves.
def b.dec
@val -= 1
end
begin
b.dec
a.dec
rescue StandardError => msg
print "Error: ", msg, "\n"
end
print "D: ", a.get, " ", b.get,"\n";