Prof. Dr. Theo D'Hondt
Last revision: August 7th, 1996

Example g1


[ Pi µvar: 3.14159265358979;
  Self makePoint
   µmethod:
    [ x µvar: 0;
      y µvar: 0;
      self setX: newX
       µmethod:
        [ x µ<- newX; self ];
      self setY: newY
       µmethod:
        [ y µ<- newY; self ];
      self area
       µmethod:
        [ 0 ];
      Self makeCircle
       µmethod:
        [ r µvar: 0;
          self setR: newR   
           µmethod:
            [ r µ<- newR; self ];
          self area
           µmethod:
            [ Pi * r sqr ];
          Self makeEllipse
           µmethod:
            [ rr µvar: 0;
              self setRR: newRR   
               µmethod:
                [ rr µ<- newRR; self ];
              self area
               µmethod:
                [ Pi * r * rr ];
              µself ];
          µself ];
     µself ];
          
  Point     µvar: Object makePoint;
  Circle    µvar: Point  makeCircle;
  Ellipse   µvar: Circle makeEllipse;

  P µvar: ((Point µclone) setX: 1) setY: 2;
  C µvar: (((Circle µclone) setX: 1) setY: 2) setR: 1;
  E µvar: ((((Ellipse µclone) setX: 1) setY: 2) setR: 1) setRR: 2;
  "  area of point = " display; P area display; Eoln display;
  " area of circle = " display; C area display; Eoln display;
  "area of ellipse = " display; E area display; Eoln display] µvalue