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(); } } /** * 克隆结果输出 */ public void cloneDisplay() { System.out.println("原始方形长度:" + square.getSideLength()); System.out.println("克隆方形长度:" + cpySquare.getSideLength()); System.out.println("原始方形==克隆方形?" + (square == cpySquare)); System.out.println("原始方形的位置==克隆方形的位置?" + (square.getLocation() == cpySquare.getLocation())); } public static void main(String[] args) { CloneTester sm = new CloneTester(); sm.shallowClone(); sm.cloneDisplay(); sm.deepClone(); sm.cloneDisplay(); }}
Java关于“冷藏”和“解冻”方法
(编辑:anna sui)
·2024年12月目录 ·2024年11月目录 ·2024年10月目录 ·2024年9月目录 ·2024年8月目录 ·2024年7月目录 ·2024年6月目录 ·2024年5月目录 ·2024年4月目录 ·2024年3月目录 ·2024年2月目录 ·2024年1月目录 ·2023年12月目录 ·2023年11月目录