java clone 疑惑
object的clone()方法是克隆对象
我疑惑的是 为什么要克隆
Test t = new Test();
如果我要克隆 t
直接Test t2 = t; 我一样可以得到一个跟t一样的对象
强调 我疑惑的是为什么要克隆 不是怎么克隆
请出示一段不用clone不行 或者 用clone比直接Test t2 = t;这样更好的代码示例
这家伙写的很清楚,你看下:
http://blog.csdn.net/zl3450341/archive/2009/11/26/4878871.aspx
看了 文中提到的
改变copy的东西,会影响到原型的内部 如果我们要copy的类是不可变的呢,如String,没有方法可以改变它的内部状态呢。
疑惑的是 什么情况下 我clone的对象 要保持原类的数据的完整性 即文中说的 如果我们要copy的类是不可变的呢, 什么时候clone的类需要 或 有必要是不可改变的
对于一个对象,在同一个功能中,需要使用不同的格式展示,并且要求原对象信息保持不变,在这种场景下,如果不使用克隆,会同时将原对象信息修改,因此必须要使用克隆。
简单理解
如果
Test t = new Test();
Test t2 = t;
t,t2都指向Test这个对象,如果要更改的test(t)——中的内容的话
用t 和t2都进行
但是如果
t2=t.clone
那么就是把t中对象的内容复制给了t2所指的对象
现在对t2进行修改时,不会影响t
因为t2只是修改了t的副本!!
呵呵,不知道你听明白了没有
相关问答:
<html><head><title>[@title]</title>
<meta http-equiv=Content-Type content="text/html; charset=gb2312">
<script language='javascript'>
function diyCheck ......
想做一个jsp的电子商务网站,想找一些源代码,请问那个网站有好的资源。谢谢!
搜索下吧 开源的也有
csdn就有相似的源码,楼主搜一下
java 开源大全
改模板好麻烦哦,还不如自己写个了呢
jf
顶一 ......
如题,C/C++中的execl怎么调用写好的java程序,
execl("/opt/java1.5/bin/java","MyClass",NULL);
这样的不行哦。
不会.
运行java程序
找工具查看一下那个程序的命令行
搜索下:jni ......
本人正在用Java做一个C/S架构的项目,
可是由于项目比较大,前期对架构的设计尤其重要,因为后期可能随时会加个功能或者去掉某些功能。
所以特地寻求如何设计C/S的架构使程序更加面向对象更加易于维 ......
<?xml version="1.0" encoding="utf-8" ?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical&q ......