/** * This is to check out cloning and super.clone() in particular. * See further notes in CloneTest.java * * @author Bob Futrelle * @version 1.0 7/12/2002 * */ public class ToClone implements Cloneable { int field; public ToClone simpleCloneMe() throws CloneNotSupportedException { return (ToClone)super.clone(); // use default } // simpleCloneMe() public ToClone fancyCloneMe() throws CloneNotSupportedException { return (ToClone)this.clone(); // use clone() override below } // fancyCloneMe() // creates new object, no clone exception needed. public ToClone goryCloneMe() { ToClone me = new ToClone(); me.field = this.field + 3; // alter field value slightly in new instance return me; } // override the default cloning method protected Object clone() throws CloneNotSupportedException { ToClone me = null; me = (ToClone) super.clone(); me.field = 99; return me; } // clone() void showField() { System.out.println(field); } }