The Clone Method
You want to clone yourself. Or at least your objects.
To clone something is to make a duplicate of
clone( ) method in Java makes an exact
duplicate of an object. Why do we need cloning? Java’s method
calling semantics are call-by-reference, which allows the
called method to modify the state of an object that is passed into
it. Cloning the input object before calling the method would pass a
copy of the object, keeping your original safe.
How can you clone? Cloning is not “enabled” by default in classes that you write.
Object o = new Object( ); Object o2 = o.clone( );
If you try calling
clone( ) without any special
preparation, as in this excerpt from
Clone0.java, you will see a message like this
(from the Jikes compiler; the javac message may
not be as informative):
Clone0.java:4:29:4:37: Error: Method "java.lang.Object clone( );" in class "java/ lang/Object" has protected or default access. Therefore, it is not accessible in class "Clone0" which is in a different package.
You must take two steps to make your class cloneable:
Implement the empty Cloneable interface.
java.lang.Object declares its clone
classes can be called by a subclass or those in the same package
java.lang), but not by unrelated classes.
That is, you can call
Object.clone( ) -- the native method that does the magic of duplicating the object -- only ...