189 8069 5689

java克隆代码 java数组克隆

java如何实现对象的克隆

可以重载clone方法克隆对象

目前创新互联已为上千家的企业提供了网站建设、域名、网站空间网站托管运营、企业网站设计、南丹网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

首先、该类要实现Cloneable的接口,不然执行clone方法的时候会抛出CloneNotSupportedException异常

然后、就在该类重载clone方法,自己加上克隆的逻辑,本人小白,手敲的代码

public class Book implement Cloneable{

private String name;

public Book(String name){

this.name=name;

}

@Override

public Book clone() throws CloneNotSupportedException {

return new Book(this.name);

}

}

java代码 clone()函数的作用是什么?

从楼主对回答的追问上发现,楼主的连JAVA基本的语法都很差啊。=号是赋值运算符,不是比较。

double[] vectorValue;

vectorValue = vectorValue.clone();

这个段代码执行肯定报错了。但他还的意思还是很明确的。

首先:double[] vectorValue;   这个是定义了一个double类型的数组变量vectorValue。

其次:vectorValue = vectorValue.clone();  //这个是将vectorValue 克隆一份,赋值给自己。也就是说vectorValue变量指向了新的一块内存区域。

举个例子可能更能说明问题。

public class TestMain implements Cloneable {

private int i ;

public TestMain(int i){

this.i = i ;

}

@Override

protected Object clone() {

// TODO Auto-generated method stub

return new TestMain(this.getI()+1);

}

public int getI() {

return i;

}

/**

 * @param args

 */

public static void main(String[] args) {

// TODO Auto-generated method stub

TestMain tm1 = new TestMain(1);

TestMain tm2  = tm1;

tm1 = (TestMain)tm1.clone();

System.out.println(tm1.getI()); //tm1指向的是通过clone()方法创建的新的对象的地址,i的值已经是2了。

System.out.println(tm2.getI()); //tm2指向的还是tm1创建时的地址,i的值为1

}

}

java中 clone()方法的使用

final只是不能修改内部值,但是可以修改引用.你a=b.clone();已经把a的引用给修改了!


当前名称:java克隆代码 java数组克隆
URL分享:http://cdxtjz.cn/article/doddspe.html

其他资讯