import java.awt.Point.
import java.io.ByteArrayInputStream.
import java.io.ByteArrayOutputStream.
import java.io.IOException.
import java.io.ObjectInputStream.
import java.io.ObjectOutputStream.
import java.io.Serializable.
import com.sun.corba.se.impl.io.OptionalDataException.
/**
* 正方形
*
* @author 88250
* @version 1.0.0, 2007-8-26
*/
public class Square implements Cloneable, Serializable
{
private Point location = new Point(0, 0).
private float sideLength = 1F.
@Override
public Object clone()
{
Square tmp = null.
try
{
tmp = (Square) super.clone().
}
catch (CloneNotSupportedException cnse)
{
cnse.printStackTrace().
}
finally
{
return tmp.
}
}
/**
* 深克隆方法
* @return
*/
public Object deepClone()
throws IOException, OptionalDataException, ClassNotFoundException
{
// 首先将对象写到流里
ByteArrayOutputStream bo = new ByteArrayOutputStream().
ObjectOutputStream oo = new ObjectOutputStream(bo).
oo.writeObject(this).
// 然后将对象从流里读出来
ByteArrayInputStream bi = new ByteArrayInputStream(bo.toByteArray()).
ObjectInputStream oi = new ObjectInputStream(bi).
return (oi.readObject()).
}
/**
* @return the location
*/
public Point getLocation()
{
return location.
}
/**
* @param location the location to set
*/
public void setLocation(Point location)
{
this.location = location.
}
/**
* @return the sideLength
*/
public float getSideLength()
{
return sideLength.
}
/**
* @param sideLength the sideLength to set
*/
public void setSideLength(float sideLength)
{
this.sideLength = sideLength.
}
} |