克隆()函数如何在java项目中使用

  

克隆()函数如何在java项目中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

克隆就是复制,在爪哇语言中,克隆方法被对象调用,所以会复制对象。所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象。那么在爪哇语言中,有:

<强> 1使用新操作符创建一个对象

<强> 2使用克隆方法复制一个对象

那么这两种方式有什么相同和不同呢?新操作符的本意是分配内存。程序执行到新操作符时,首先去看新操作符后面的类型,因为知道了类型,才能知道要分配多大的内存空间。分配完内存之后,再调用构造函数,填充对象的各个域,这一步叫做对象的初始化,构造方法返回后,一个对象创建完毕,可以把他的引用(地址)发布到外部,在外部就可以使用这个引用操纵这个对象。而克隆在第一步是和新相似的,都是分配内存,调用克隆方法时,分配的内存和源对象(即调用克隆方法的对象)相同,然后再使用原对象中对应的各个域,填充新对象的域,填充完成之后,克隆方法返回,一个新的相同的对象被创建,同样可以把这个新对象的引用发布到外部。

包测试;
  
  公开课Cloneoo {
  公共静态void main (String [] args) {
  测试t=新的测试();
  t.changeInt ();
  System.out.println (t);
  尝试{
  测试t1=(测试)t.clone();//创建
  System.out.println (t1);
  System.out.println (t1.getI ());
  }捕捉(CloneNotSupportedException e) {//TODO自动生成的catch块
  e.printStackTrace ();
  }
  
  }
  }
  类测试实现可克隆{
  私人int i=0;
  公共空间setI (int i) {
  这一点。我=我;
  }
  公共int getI () {
  返回我;
  }
  公共空间changeInt () {
  莞=1;
  }
  @Override
  保护对象克隆()抛出CloneNotSupportedException {//TODO自动生成方法存根
  测试t=零;
  t=(测试)super.clone ();
  返回t;
  }
  
  }
  
test.test@15db9742   test.test@6d06d69c   1   

当类中包含一些对象的时候,我们就需要深复制,就是在对对象的复制之后,急着对对象中的非基本类型的属性也调用克隆方法完成深复制。

<强>克隆方法执行的是浅拷贝

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

克隆()函数如何在java项目中使用