您的位置:

javaclone,javaclone函数

本文目录一览:

java clone 怎么调用

Java语言的一个优点就是取消了指针的概念,但也导致了许多程序员在编程中常常忽略了对象与引用的区别,特别是先学c、c++后学java的程序员。并且由于Java不能通过简单的赋值来解决对象复制的问题,在开发过程中,也常常要要应用clone()方法来复制对象。比如函数参数类型是自定义的类时,此时便是引用传递而不是值传递。以下是一个小例子:

public class A {

public String name;

}

public class testClone {

public void changeA(A a){

a.name="b";

}

public void changInt(int i){

i=i*2+100;

}

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

testClone test=new testClone();

A a=new A();

a.name="a";

System.out.println("before change : a.name="+a.name);

test.changeA(a);

System.out.println("after change : a.name="+a.name);

int i=1;

System.out.println("before change : i="+i);

test.changInt(i);

System.out.println("after change : i="+i);

}

}

Java中是如何实现克隆

java 实现clone对象方法的步骤如下:

(1)实现Cloneable接口

(2)重载Object类中的clone()方法,重载时需定义为public

(3)在重载方法中,调用super.clone()

例如:

class CloneClass implements Cloneable {

public int aInt;

public Object clone() {

CloneClass o = null;

try {

o = (CloneClass) super.clone();

} catch (CloneNotSupportedException e) {

e.printStackTrace();

}

return o;

}

java 编程clone方法

1、Cloneable接口只是个标记接口,里面没有任何实现方法,不实现Cloneable接口也可以使用Object的clone方法

2、任何类都是Object的子类,在子类里当然可以直接调用clone方法,比如super.clone()

3、注意clone方法用native修饰,表明该方法有方法体只是调用的jre外部方法,一般是用C语言实现,其作用是通过jvm和操作系统底层交互

4、参照3

Java中clone方法的疑问

因为在java.lang.Object类的定义里,clone()这个方法是protected,

按照protected的访问控制范围规定,只能是当前类,或当前包,或其他包的子类,这三种情况能访问。

注意这里的”能访问“都是通过原有对象访问的。

你可能以为你代码里obj满足”其他包的子类“这个条件,错了,一旦new出来,就脱离了作用域了。而super仍是原有对象,因此可以访问父类Base乃至Object的保护的clone()方法。

javaclone会拷贝父类的私有成员变量吗

javaclone会拷贝父类的私有成员变量的,对于对象变量,使用clone仅能实现浅拷贝仅复制对象的在栈中的reference所以可以拷贝父亲的私有变量。