码迷,mamicode.com
首页 > 其他好文 > 详细

clone()方法

时间:2019-09-12 21:25:27      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:img   组类型   类类型   height   技术   width   位置   空间   类对象   

1.clone方法可以克隆所指类型中的内容,并指向一个跟被克隆一样的东西。比如说int arr[] ={1 , 2 ,3},使用克隆方法int cloneArr[] =arr.clone(),这时cloneArr就指向了一个新的有三个空间的数组,跟被克隆的arr所指的数组类型及内容一致。

技术图片

克隆是对内容进行了复制,但是克隆后指向的是新的数组,不是原来的arr数组,所以对arr和cloneArr是不同的操作。

2.当对类类型的数组进行克隆时,比如有个Test类,类里只有value; Test[] arr = new Test[2],arr[1] = new Test(),现在arr指向了两个类,并对数组中的第二个位置创建了Test类对象,并给这个对象赋值arr[1].value = 123,这时情况如图

技术图片

现在开始克隆,Test[] cloneArr = arr.clone(),这时也指向了类数组,数组里的内容和arr的一样,只是内容一样,arr和cloneArr指的不同,只是内容一样,这时克隆的情况如图

技术图片

发现cloneArr[1]所指的和arr[1]所指的一样,因为克隆时把被克隆的内容都拿过来了,所以指向相同,这时如果让cloneArr[1] = new Test(),这样就各指各的了,此时情况如图

技术图片

3.二维数组时也是同理,克隆后会把地址也克隆过来,所以会指向同一地方,int[][] arr = new int[2][3],int[][] cloneArr = arr.clone();这时情况如图:

技术图片

先给arr[1][2]进行赋值,然后继续克隆,cloneArr[1] = arr[1].clone;这时会把内容赋值过来,但是不在指向原处,此时情况如图:

技术图片

clone()方法

标签:img   组类型   类类型   height   技术   width   位置   空间   类对象   

原文地址:https://www.cnblogs.com/yudongxuan/p/11515118.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!