`
san_yun
  • 浏览: 2652609 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

clone克隆

    博客分类:
  • java
 
阅读更多
java 代码
  1. public class Main implements Cloneable{   
  2.     String msg;   
  3.     public Main(String msg){   
  4.         this.msg = msg;    
  5.         System.out.println("init");   
  6.     }   
  7.     public Object clone()throws CloneNotSupportedException{   
  8.         return super.clone();   
  9.     }   
  10.     public boolean equals(Object obj){   
  11.         if(obj==this)return true;   
  12.         if(!(obj instanceof Main))return false;   
  13.         final Main temp  = (Main)obj;   
  14.         if(this.msg.equals(temp.msg))   
  15.             return true;   
  16.         else    
  17.             return false;   
  18.            
  19.     }   
  20.     public static void main(String[] args)throws Exception{   
  21.         Main main = new Main("sanyun");   
  22.         Main clone = (Main)main.clone();   
  23.         System.out.println(main==clone);   
  24.         System.out.println(main.equals(clone));   
  25.         System.out.println(clone.msg);   
  26.     }   
  27. }  

需要注意的几点:

1.必须实现Cloneable借口,否则会抛出CloneNotSupportException

2.Object的clone方法原形是protected,覆写时需要扩大访问权限public

3.clone方法并不会调用构造函数。

4Object colen方法的实现中会创建一个复制的对象,这个对象于原来的对象具有相同的值,但具有不同的内存地址

分享到:
评论

相关推荐

    克隆管理CLONE克隆管理克隆管理克隆管理

    克隆管理克隆管理克隆管理克隆管理克隆管理克隆管理克隆管理克隆管理克隆管理克隆管理克隆管理克隆管理克隆管理克隆管理克隆管理克隆管理克隆管理克隆管理克隆管理克隆管理克隆管理克隆管理克隆管理克隆管理克隆管理...

    clone 深度克隆对象

    实现深度克隆可以采用实现Cloneable接口并重写clone(),或者利用序列化和反序列化技术,具体选择取决于应用场景和性能需求。在实际项目中,应根据具体情况权衡效率和安全性,合理选择克隆策略。

    ubuntu使用git clone克隆/下载github模型速度慢的解决方案

    使用在linux操作系统上使用git clone下载github上模型速度慢,多数是因为网不好。 提供了两种方法,可以同时使用。 方法:先刷hosts 1. 命令行输入下列代码,找到 github.global.ssl.fastly.Net对应的Address,记录 ...

    Java中的克隆(Clone)机制

    在Java编程语言中,克隆(Clone)机制是一种创建对象副本的方法,它允许开发者创建一个已有对象的新实例,这个新实例与原对象具有相同的属性值,但却是两个独立的对象,彼此的操作不会互相影响。克隆机制在某些情况...

    中文语音克隆内含数据集和预训练模型:voice clone.zip

    总而言之,"voice clone.zip"提供的数据集和预训练模型是构建中文语音克隆系统的关键资源。通过理解和利用这些资源,开发者和研究人员能够进一步探索语音合成的边界,创造出更加个性化和自然的语音体验。然而,这也...

    google.clone:克隆Google主页

    【标题解析】:“google.clone:克隆Google主页”这个标题暗示了一个项目,它的目标是创建一个与Google官方主页相似的网页。"clone"在这里是指复制或模仿的意思,意味着这个项目试图复制Google主页的设计、功能和用户...

    windows git 批量 clone 脚本

    首先,`clone-all.bat`是用于批量克隆Git仓库的脚本。在Git中,`git clone`命令用于复制远程仓库到本地。批量克隆通常涉及循环遍历一个包含仓库URL的列表,然后依次执行克隆操作。用户可能需要自定义脚本中的URL列表...

    jlink v9 warning clone解决

    `jlink v9 warning clone`问题通常涉及到JLink版本9在与MDK配合使用时遇到的警告,提示可能与克隆设备或非法设备相关。 标题中的"jlink v9 warning clone解决"意味着开发者正在尝试解决关于JLink v9版本出现的克隆...

    在Unity3D中实现克隆脚本2

    克隆后的对象`clone`不仅仅是一个复制,它有自己的生命周期和独立的状态,可以进行不同的操作,例如改变速度: ```csharp clone.velocity = new Vector3(0, 5, 10); ``` 这段代码设置了克隆子弹在XYZ轴上的速度,...

    HD Clone磁盘克隆工具

    HDClone用来从物理层将硬盘上的数据拷贝到另一个硬盘。无论硬盘大小,它都能够为其生成映像文件。该软件将其自身安装到一张可启动磁盘上或者 CD 光盘上,并且包括了其自身的操作系统,因此该软件可以完全独立于 ...

    apt-clone:使用已安装的软件包(以及恢复能力)为DebianUbuntu系统创建一个“状态”文件。

    克隆apt-clone允许您为Debian / Ubuntu系统创建所有已安装软件包的“状态”文件,这些文件可以在新安装的系统(或容器)上或目录中还原。 用例: 克隆服务器程序包选择并在后备系统上还原备份系统状态,以便在紧急...

    java 深克隆 浅克隆

    为了实现深克隆,通常需要自定义克隆逻辑,因为`Object`的`clone()`方法无法处理引用类型的深度复制。这通常涉及序列化和反序列化的过程,或者手动复制每个引用类型的字段。 例如: ```java class DeepCloneExample...

    clone()方法示例(对象克隆)_对象克隆_nervouse78_源码

    在`nervouse78`的这个示例中,作者"初生不惑"可能通过创建一个类,然后覆盖`clone()`方法来演示了如何自定义克隆行为。通常,要使一个类支持`clone()`,需要满足以下步骤: 1. **实现Cloneable接口**:`Cloneable`...

    Jlink-clone解决办法,替换文件.rar

    当遇到"Jlink-clone"问题时,这通常指的是遇到了非原厂生产的、可能功能受限或者不稳定版本的J-Link设备。这类克隆设备可能会有兼容性问题、性能下降或不支持某些高级功能。本文将深入探讨如何解决Jlink-clone带来的...

    系统克隆Spb Clone1[1].59似Spb Backup的克隆软件,可以将克隆镜像文件直接用在其他设备上进行恢复

    系统克隆Spb Clone1[1].59似Spb Backup的克隆软件,可以将克隆镜像文件直接用在其他设备上进行恢复系统克隆Spb Clone1[1].59似Spb Backup的克隆软件,可以将克隆镜像文件直接用在其他设备上进行恢复系统克隆Spb ...

    133.Clone Graph 克隆图【LeetCode单题讲解系列】

    133.Clone_Graph_克隆图【LeetCode单题讲解系列】

    图像清晰化系列-图片克隆放大器clone v2.0免费版

    《图像清晰化技术详解——基于图片克隆放大器Clone v2.0的实践指南》 在数字图像处理领域,图像清晰化是一项至关重要的技术。它能够帮助用户改善图像质量,尤其是对于低分辨率、模糊或者像素化的图像,进行有效增强...

Global site tag (gtag.js) - Google Analytics