Java关于克隆与“冷藏”和“解冻”方法
百度广告
import java.awt.Point;import java.io.IOException;import com.sun.corba.se.impl.io.OptionalDataException;/** * 克隆测试 |
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; }} |
编辑推荐:
下载Word文档
温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)
点击加载更多评论>>