[ Pi µvar: 3.14159265358979; Self makeEllipse µmethod: [ x µvar: 0; y µvar: 0; r µvar: 0; rr µvar: 0; self setX: newX µmethod: [ x µ<- newX; self ]; self setY: newY µmethod: [ y µ<- newY; self ]; self setR: newR µmethod: [ r µ<- newR; self ]; self setRR: newRR µmethod: [ rr µ<- newRR; self ]; self area µmethod: [ Pi * r * rr ]; Self makeCircle µmethod: [ self setRR: newRR µmethod: [ "illegal change" error ]; self area µmethod: [ Pi * r sqr ]; Self makePoint µmethod: [ self setR: newR µmethod: [ "illegal change" error ]; self area µmethod: [ 0 ]; µself ]; µself ]; µself ]; Ellipse µvar: Object makeEllipse; Circle µvar: Ellipse makeCircle; Point µvar: Circle makePoint; 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