如何支持clone方法

标签: objectclassnull
1601人阅读 评论(0) 收藏 举报
分类:
 
1)实现Cloneable接口,因为Object的clone方法将检查类是否实现了Cloneable接口,如果没有将抛出异常CloneNotSupportedException对象。Cloneable接口没有任何方法,只是个标志,所以只需要简单得写上implements Cloneable即可。
2)改写从Object继承而来的clone方法,使它的访问权限为public,因为为了防止意外的支持clone操作,Object的clone方法是protected权限。
3)在clone方法中,调用super.clone()方法。Object的clone方法能够按照旧对象的大小创建足够的内存空间,并按位拷贝到新的对象空间。因此注意如果只调用super.clone方法,只能达到浅拷贝的效果。
如果想要达到深拷贝的效果,就需要自己编写代码拷贝每一个成员变量。
举例如下:
publicclass MyInteger implements Cloneable
{
    privateintvalue;
   
    public MyInteger(int value)
    {
       this.value=value;
    }
   
    publicvoid setValue(int value)
    {
       this.value=value;
    }
   
    publicint getValue()
    {
       returnvalue;
    }
   
    public Object clone()
    {
       try
       {
           returnsuper.clone();
       }
       catch(CloneNotSupportedException e)
       {
           System.err.println(e);
       }
       returnnull;
    }
 
}
 
 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:5156394次
    • 积分:63911
    • 等级:
    • 排名:第29名
    • 原创:1203篇
    • 转载:22篇
    • 译文:1篇
    • 评论:1140条
    文章分类
    最新评论
    算法专家朋友的博客
    清如许的博客