import java.awt.Point;
import java.io.IOException;
import com.sun.corba.se.impl.io.OptionalDataException;
/**
* 克隆测试<br>
* 以方形类为例,比较了深克隆(deep clone)与浅克隆(shallow clone)的异同
*
* @see #clone()
* @author 88250
* @version 1.0.0, 2007-8-26
*/
public class CloneTester
{
private Square square = new Square();
private Square cpySquare = null;
/**
* 浅克隆操作
*/
public void shallowClone()
{
square.setSideLength(2);
square.setLocation(new Point(2, 5));
// 浅克隆
cpySquare = (Square) square.clone();
}
/**
* 深克隆操作
*/
public void deepClone()
{
square.setSideLength(3);
square.setLocation(new Point(1, 3));
// 深克隆
try
{
cpySquare = (Square) square.deepClone();
}
catch (OptionalDataException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
}
/**
* 克隆结果输出
*/
上一篇:
Oracle9i的新特性索引跳跃式扫描的实现
下一篇:
详细介绍构建高性能J2EE应用的十个技巧