- 浏览: 63370 次
- 性别:
- 来自: 南京
-
文章分类
最新评论
java中 克隆一个对象需要三步:
1:克隆的对象实现 Cloneable 标识接口
2:覆盖 Object 的 clone() 方法,在 clone() 方法中调用super.clone(),并把 protected 改为 public。
3:调用 clone() 克隆对象 ,如:代码第7行
克隆代码示例:
1:克隆的对象实现 Cloneable 标识接口
2:覆盖 Object 的 clone() 方法,在 clone() 方法中调用super.clone(),并把 protected 改为 public。
3:调用 clone() 克隆对象 ,如:代码第7行
克隆代码示例:
public class Test { public static void main(String[] args) { Professor p=new Professor("lisi",66); Student s1=new Student("zhaoliu",22,p); Student s2=(Student)s1.clone(); //深复制 -- 把s1的引用拷贝一份 赋值给s2 ,所以 改变s2的值 s1不改变 ,即输出(name=lisi,age=66) //Student s2=(Student)s1; //浅复制 --只把s1的引用 赋值给s2 , 所以 改变s2的值 s1也改变 ,即输出(name=wangwu,age=40) s2.getP().setName("wangwu"); s2.getP().setAge(40); System.out.println("name="+s1.getP().getName()+","+"age="+s1.getP().getAge()); } } class Professor implements Cloneable { private String name; private int age; Professor(String name, int age) { this.name = name; this.age = age; } public Object clone() { Object o = null; try { o = super.clone(); } catch (CloneNotSupportedException e) { System.out.println(e.toString()); } return o; } public String getName() { return name; } public int getAge() { return age; } public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } } class Student implements Cloneable { private String name; private int age; private Professor p; Student(String name, int age, Professor p) { this.name = name; this.age = age; this.p = p; } public Object clone() { // Object o=null; Student o = null; try { o = (Student) super.clone(); } catch (CloneNotSupportedException e) { System.out.println(e.toString()); } o.p = (Professor) p.clone(); return o; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Professor getP() { return p; } public void setP(Professor p) { this.p = p; } }
发表评论
-
html5 跨域访问
2017-08-18 13:10 399@Configuration public class ... -
javat进程 cpu100%,解决方法
2017-07-24 16:35 425Java进程cpu100%,解决方法如下: 1.执行top ... -
eclipse 汉化
2017-06-20 12:48 396Installing the language packs O ... -
判断移动设备环境
2016-06-21 09:50 433/** * 客户端判断工具 * */ ... -
Java 文件锁
2016-06-17 09:50 382FileChannel channel FileLock ... -
并发同步列子
2016-06-16 09:30 368import java.util.concurrent.Cou ... -
java.util.concurrent 用户指南
2016-06-15 14:09 350java.util.concurrent 用户指南 -
java 反射工具
2016-06-12 11:07 495java 反射工具 package com.util; ... -
linux java 安装
2016-04-23 10:19 391下载jdk-7u79-linux-x64.tar.gz文件,解 ... -
对象序列化和反序列化
2016-04-14 20:28 436当一个对象的实例变量 ... -
java 垃圾回收机制
2016-03-02 11:08 328http://www.cnblogs.com/dartagn ... -
ngrok_windows.rar 映射外网
2016-02-29 16:50 540ngrok_windows.rar 映射外网 -
性能优化技巧
2015-09-09 08:48 6171. 尽量使用final修饰符。 带有final修饰符的类是 ... -
java 反编译工具
2015-02-14 17:05 636java 反编译工具 -
java 中对象比较大小
2010-06-10 22:36 4349java 中对象比较大小 java 中对象比较大小有两种方法 ...
相关推荐
在Java编程语言中,克隆(Clone)机制是一种创建对象副本的方法,它允许开发者创建一个已有对象的新实例,这个新实例与原对象具有相同的属性值,但却是两个独立的对象,彼此的操作不会互相影响。克隆机制在某些情况...
在Java编程语言中,克隆技术是一个重要的概念,它允许我们创建一个对象的精确副本,即一个全新的对象,它具有与原对象相同的属性值。这个副本通常可以独立于原始对象存在和修改。克隆技术在处理那些需要复制对象但又...
在Java中,对象克隆可以通过实现`Cloneable`接口并覆盖`Object`类中的`clone()`方法来完成。`Cloneable`接口本身不包含任何方法,只是一个标记接口,表明该类的对象可以被克隆。`Object`类的`clone()`方法会创建一个...
Java中的对象复制与克隆是程序开发中常见的需求,主要用于创建一个对象的副本,而不会影响原始对象的状态。这里主要讨论两种类型的对象拷贝:浅拷贝和深拷贝。 浅拷贝,也称为表面拷贝,是创建一个新的对象,然后将...
Java中的对象克隆可以通过实现`Cloneable`接口并覆盖`clone()`方法来完成。对象的克隆分为浅拷贝和深拷贝两种形式。 **1. 浅拷贝** 浅拷贝是指创建一个新的对象,然后将原对象的所有非引用类型的成员变量复制到新...
标题中的“java对象复制克隆”主要涉及的是深拷贝,这是一种创建一个新对象的方式,新对象不仅复制了原对象的所有属性,还复制了嵌套的对象引用,使得修改复制后的对象不会影响到原始对象。 **浅拷贝**:在浅拷贝中...
在Java编程语言中,对象克隆是一种创建一个与原对象具有相同数据的新对象的过程。对象克隆主要用于复制或备份对象,以便在不干扰原始对象的情况下对其进行修改或操作。本篇文章将详细探讨Java中的对象克隆及其实现...
java的两种深度克隆方法,1cloneTest是用Cloneable接口的clone方法实现(对象必须要实现cloneable接口).2cloneSerialize.java是用对象流写对象到byte数组中,然后从byte数组中取得对象.(对象必须要实现serializble接口)
Java 对象克隆是 Java 编程中一个重要的概念。由于 Java 中的对象使用引用类型,所以没有直接的方法可以将对象的内容复制到一个新的对象。Java 提供了一个特殊的 clone() 方法,为所有的引用类型提供了一套标准的...
在Java编程语言中,克隆是一种创建对象副本的方法,它允许我们复制一个对象并拥有一个完全独立的新实例,而不是仅仅引用原始对象。克隆技术在处理复杂数据结构、避免对象共享以及实现对象复制等方面有着广泛的应用。...
对象克隆是Java编程中的一个重要概念,它允许我们创建一个已有对象的副本,而不影响原始对象。在Java中,克隆主要涉及到`Object`类中的`clone()`方法,以及两种不同的克隆类型:浅克隆和深克隆。 一、克隆的原理与...
在Java编程语言中,`clone`是一个非常重要的概念,它涉及到对象复制和对象克隆。本文将深入探讨Java中的`clone`方法,包括其工作原理、使用场景、注意事项以及一些个人实践心得。 首先,让我们理解什么是`clone`。...
在Java编程语言中,`clone()`方法是一个非常重要的概念,特别是在处理对象复制和数据持久化时。本示例将深入探讨`clone()`方法的工作原理、使用场景以及如何在实际编程中应用。首先,我们来理解一下`clone()`方法的...
"clone"方法就是用于复制对象的一种方式,尤其在Java等支持此功能的语言中。本文将深入探讨"深度克隆"这一概念,以及它与普通克隆的区别,并讨论其在实际应用中的优缺点。 深度克隆,也称为完全克隆,是一种创建新...
在Java编程语言中,克隆是一种创建对象副本的方法,它允许我们复制一个对象并得到一个与原对象相同但独立的新对象。克隆分为两种主要类型:深克隆和浅克隆。理解这两种克隆的区别是Java面向对象编程中的重要概念。 ...
Java 深克隆与浅克隆 Java 中的克隆机制可以让我们方便地制造出一个对象的...Java 中的克隆机制可以方便地制造出对象的副本,但是需要注意浅克隆和深克隆的区别,并且需要正确地使用 Clone 方法,以避免不利的结果。
在Java编程语言中,"深度克隆"是一个重要的概念,主要涉及到对象复制。深度克隆,也称为完全克隆,是指创建一个与原对象相同的新对象,不仅复制原对象的所有属性,还复制了原对象中引用的对象。这通常用于创建一个...
Java中的`clone`方法是Java语言提供的一种复制对象的方式,它允许创建一个对象的副本,这个副本与原对象具有相同的属性值,但它们是两个独立的对象,修改副本不会影响原对象。`clone`方法存在于Java的`java.lang....
总的来说,理解Java对象的深克隆和浅克隆是优化代码和解决特定问题的关键。根据具体需求选择合适的克隆方式,可以提高代码的可维护性和灵活性。在设计类和系统时,应考虑对象复制的需求,并决定是否实现`Cloneable`...