您当前的位置: 首页 > 网站编程 > JSP教程 > Java关于克隆与“冷藏”和“解冻”方法

Java关于克隆与“冷藏”和“解冻”方法

作者:guanchaofeng 来源:不详 发布时间: 2009-03-06 21:45 点击:
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

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关于克隆与“冷藏”和“解冻”方法"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4