MC logo

Inheritance

^  Ruby Example Code

<<Box Class class2.rb Setting Variables>>
# 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

  def more(y)
    @val += y
  end

  def less(y)
    @val -= y
  end

  def to_s
    return "Fred(val=" + @val.to_s + ")"
  end
end

# Class Barney is derived from Fred with the usual meaning.
class Barney < Fred
  def initialize(x)
    super(x)
    @save = x
  end

  def chk
    @save = @val
  end

  def restore
    @val = @save
  end

  def to_s
    return "(Backed-up) " + super + " [backup value: " + @save.to_s + "]"
  end

end

# Objects are created by the new method of the class object.
a = Fred.new(398)
b = Barney.new(112)

a.more(34)
b.more(817)

print "A: a = ", a, "\n   b = ", b, "\n";

a.more(34)
b.more(817)

print "B: a = ", a, "\n   b = ", b, "\n";

b.chk

a.more(34)
b.more(817)

print "C: a = ", a, "\n   b = ", b, "\n";

b.restore

print "D: a = ", a, "\n   b = ", b, "\n";

<<Box Class Setting Variables>>