你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / Linux开发
Java关于克隆与“冷藏”和“解冻”方法
 
Java关于克隆方法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月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089