cloneable接口实现原理(在java中 clone为什么要用super.clone()方法 这里为什么要用super不是this)

2024-07-18 05:24:56 15

cloneable接口实现原理(在java中 clone为什么要用super.clone()方法 这里为什么要用super不是this)

本文目录

在java中 clone为什么要用super.clone()方法 这里为什么要用super不是this

1.Object中的clone执行的时候使用了RTTI(run-time type identification)的机制,动态得找到目前正在调用clone方法的那个reference,根据它的大小申请内存空间,然后进行bitwise的复制,将该对象的内存空间完全复制到新的空间中去,从而达到shallowcopy的目的。 所以你调用super.clone() 得到的是当前调用类的副本,而不是父类的副本。根本没有必用调用this.clone();2.要让实例调用clone方法就需要让此类实现Cloneable接口,API里面还有句话是:如果在没有实现 Cloneable 接口的实例上调用 Object 的 clone 方法,则会导致抛出 CloneNotSupportedException 异常,这便是“合法”的含义。 但请注意,Cloneable接口只是个标签接口,不含任何需要实现的方法,就像Serializable接口一样。总之,一般如果你的子类没有特殊需要而重写clone()方法就直接用super.clone() 就行了。

java clone()方法

虽然clone是Object就有的方法,但是想用必须实现Cloneable接口,String没有实现这个接口所以这么提示,The method clone() from the type Object is not visible从Object继承过来的clone方法不可见

为什么不能直接调用clone方法

从网上找的,希望对你有所帮助吧。3.java中的clone3.1.什么是"clone"? 在实际编程过程中,我们常常要遇到这种情况:有一个对象A,在某一时刻A中已经包含了一些有效值,此时可能会需要一个和A完全相同新对象B,并且此后对B 任何改动都不会影响到A中的值,也就是说,A与B是两个独立的对象,但B的初始值是由A对象确定的。在Java语言中,用简单的赋值语句是不能满足这种需 求的。要满足这种需求虽然有很多途径,但实现clone()方法是其中最简单,也是最高效的手段。 Java的所有类都默认继承java.lang.Object类,在java.lang.Object类中有一个方法clone()。JDK API的说明文档解释这个方法将返回Object对象的一个拷贝。要说明的有两点:一是拷贝对象返回的是一个新对象,而不是一个引用。二是拷贝对象与用 new操作符返回的新对象的区别就是这个拷贝已经包含了一些原来对象的信息,而不是对象的初始信息。3.2.怎样应用clone()方法? 一个很典型的调用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; } } 有三个值得注意的地方,《!----》一是希望能实现clone功能的CloneClass类实现了Cloneable接口,这个接口属于java.lang包, java.lang包已经被缺省的导入类中,所以不需要写成java.lang.Cloneable。《!----》另一个值得请注意的是重载了clone()方法。最 后在clone()方法中调用了super.clone(),这也意味着无论clone类的继承结构是什么样的,super.clone()直接或间接调 用了java.lang.Object类的clone()方法。下面再详细的解释一下这几点。 《!----》应该说第三点是最重要的,仔细观察一下Object类的clone()一个native方法,native方法的效率一般来说都是远高于java中的非 native方法。这也解释了为什么要用Object中clone()方法而不是先new一个类,然后把原始对象中的信息赋到新对象中,虽然这也实现了 clone功能。对于第二点,也要观察Object类中的clone()还是一个protected属性的方法。这也意味着如果要应用clone()方 法,必须继承Object类,在Java中所有的类是缺省继承Object类的,也就不用关心这点了。然后重载clone()方法。还有一点要考虑的是为 了让其它类能调用这个clone类的clone()方法,重载之后要把clone()方法的属性设置为public。 、那么clone类为什么还要实现Cloneable接口呢?稍微注意一下,Cloneable接口是不包含任何方法的!其实这个接口仅仅是一个标志,而且 这个标志也仅仅是针对Object类中clone()方法的,如果clone类没有实现Cloneable接口,并调用了Object的clone()方 法(也就是调用了super.Clone()方法),那么Object的clone()方法就会抛出 CloneNotSupportedException异常。

cloneable接口实现原理(在java中 clone为什么要用super.clone()方法 这里为什么要用super不是this)

本文编辑:admin

更多文章:


惠普台式机报价(惠普台式机价格一览表)

惠普台式机报价(惠普台式机价格一览表)

惠普台式机价格一览表关于“惠普台式机价格一览表”的相关内容,以下是条理清晰的解释:一、概述“惠普台式机价格一览表”是指惠普品牌下各种型号台式机的价格列表。由于惠普台式机产品线丰富,包括家用、商用、游戏等多个系列,因此价格也会因型号、配置、地

2024年7月18日 14:31

电脑手机(电脑手机版)

电脑手机(电脑手机版)

电脑手机版“电脑手机版”通常指的是为手机和平板设备优化的电脑软件版本。以下是关于“电脑手机版”的详细解释:1. 定义: - 电脑手机版是指那些原本在电脑上运行的软件或应用,但经过开发者的优化和调整,使其可以在手机或平板设备上流畅运行。

2024年7月12日 18:46

华硕a83s(华硕a83s笔记本参数)

华硕a83s(华硕a83s笔记本参数)

华硕a83s笔记本参数华硕A83S笔记本参数的详细解释如下:1. 处理器:这通常是指笔记本电脑所配备的中央处理器型号。但具体的处理器型号未给出,如需要详细信息,可查阅官方网站或产品说明书。2. 内存:内存大小决定了电脑可以同时处理的任务数量

2024年7月27日 21:16

华硕台式机(华硕台式机u盘启动快捷键)

华硕台式机(华硕台式机u盘启动快捷键)

华硕台式机u盘启动快捷键关于“华硕台式机U盘启动快捷键”的相关内容,以下为您详细解释:一、华硕台式机U盘启动简介在华硕台式机上使用U盘启动,通常是为了安装操作系统、进行系统维护或者从U盘中的其他启动文件启动电脑。为了实现这一目的,您需要了解

2024年7月12日 17:01

联想m490s(联想m490s换键盘)

联想m490s(联想m490s换键盘)

联想m490s换键盘关于联想M490S换键盘的相关内容,以下是一些条理清晰的解释:1. 原因:联想M490S换键盘的原因可能有很多,比如原键盘损坏、磨损严重、需要更换更符合使用需求的键盘等。2. 操作步骤: * 准备工具和零件:需要准备一

2024年7月17日 18:11

gateway笔记本电脑(Gateway笔记本电脑)

gateway笔记本电脑(Gateway笔记本电脑)

Gateway笔记本电脑“Gateway笔记本电脑”是来自美国的一家电脑制造商所生产的笔记本电脑。以下是关于Gateway笔记本电脑的详细解释:一、公司概况Gateway公司是电脑领域的知名品牌之一,在90年代开始涉足计算机硬件市场,特别是

2024年7月19日 09:14

联想移动硬盘f310(联想移动硬盘F310怎么插到电脑上找不到)

联想移动硬盘f310(联想移动硬盘F310怎么插到电脑上找不到)

联想移动硬盘F310怎么插到电脑上找不到关于联想移动硬盘F310插到电脑上找不到的问题,以下是一些可能的解决步骤和注意事项:1. 检查硬件连接: - 确保移动硬盘已经正确连接到电脑的USB接口上。 - 尝试使用不同的USB接口或电缆

2024年7月20日 07:36

联想一体机报价(联想一体机报价单)

联想一体机报价(联想一体机报价单)

联想一体机报价单联想一体机报价单相关内容条理明确的解释如下:一、引言联想一体机报价单是一份详细列出联想品牌一体机各种型号、配置及对应价格的清单。该报价单通常用于商业或个人用户在购买电脑时进行参考和比较。二、一体机型号与配置在联想一体机报价单

2024年7月17日 16:49

thinkpad x1 carbon 2019 lte(ThinkPad X1 Carbon 2019 LTE版)

thinkpad x1 carbon 2019 lte(ThinkPad X1 Carbon 2019 LTE版)

ThinkPad X1 Carbon 2019 LTE版ThinkPad X1 Carbon 2019 LTE版是一款商务笔记本电脑,其关键特点和技术参数可以大致总结如下:1. **产品名称**:ThinkPad X1 Carbon 201

2024年7月9日 04:20

联想z6pro(联想z6pro和红米k20pro)

联想z6pro(联想z6pro和红米k20pro)

联想z6pro和红米k20pro联想Z6 Pro和红米K20 Pro是两款不同的手机,它们在多个方面存在差异。以下是对这两款手机的详细解释:1. 处理器:联想Z6 Pro搭载了高通骁龙855 Plus芯片,属于较高端的处理器。红米K20 P

2024年7月23日 17:27

三星n148笔记本电脑(三星n148笔记本电脑参数)

三星n148笔记本电脑(三星n148笔记本电脑参数)

三星n148笔记本电脑参数关于“三星N148笔记本电脑参数”的相关内容,以下是一些主要参数的条理明确的解释:1. 处理器(CPU):该笔记本电脑的处理器型号和核心数决定了其处理速度和性能。三星N148的具体型号和主频等信息没有详细给出,但通

2024年7月10日 12:20

华硕n550(华硕n550jv)

华硕n550(华硕n550jv)

华硕n550jv华硕N550JV是一款由华硕公司生产的笔记本电脑。以下是一些有关该电脑的相关内容:1. 硬件配置:华硕N550JV搭载了较新的处理器、独立显卡等硬件设备,能够提供较为流畅的多任务处理和图形处理性能。2. 外观设计:该电脑通常

2024年7月8日 04:07

学习平板电脑(学生平板电脑哪个牌子好用又实惠)

学习平板电脑(学生平板电脑哪个牌子好用又实惠)

学生平板电脑哪个牌子好用又实惠关于“学生平板电脑哪个牌子好用又实惠”的问题,以下是一些相关内容的条理化解释:一、考虑因素1. 预算:首先要确定自己的预算范围。不同品牌和型号的学生平板电脑价格差异较大,根据预算选择合适的平板电脑。2. 品牌与

2024年7月16日 04:05

联想上网本报价(联想上网本价格)

联想上网本报价(联想上网本价格)

联想上网本价格“联想上网本价格”的相关内容主要包括了联想品牌的上网本电脑的价格信息。以下是关于联想上网本价格的条理明确的解释:1. 产品系列与定位: - 联想的上网本产品涵盖了多个系列,如针对不同用户需求的Yoga、ThinkBook、

2024年7月29日 02:56

泰坦显卡(泰坦显卡相当于现在什么显卡)

泰坦显卡(泰坦显卡相当于现在什么显卡)

泰坦显卡相当于现在什么显卡“泰坦显卡”通常指的是NVIDIA公司推出的一系列高端显卡,这些显卡在发布时被视为当时最先进的技术代表。要了解泰坦显卡相当于现在的什么显卡,需要具体对比不同时代的产品。但大体上,泰坦显卡系列在发布时都是顶级性能的代

2024年7月23日 01:21

电脑排行榜(电脑排行榜笔记本前十名性价比)

电脑排行榜(电脑排行榜笔记本前十名性价比)

电脑排行榜笔记本前十名性价比电脑排行榜笔记本前十名性价比相关的内容如下:一、概念解析电脑排行榜是指针对笔记本电脑的各类性能和特性进行的排名榜单,通过综合考虑产品性能、价格、用户评价等因素来排名。而性价比则是反映商品性能与其价格之间比值的概念

2024年7月23日 16:38

asusx42j(asusx42j配置)

asusx42j(asusx42j配置)

asusx42j配置当然可以。ASUS X42J是一款来自华硕(ASUS)的笔记本电脑配置。以下是关于ASUS X42J配置的详细解释:1. 处理器(CPU): - ASUS X42J通常配备的是中端或入门级的处理器,具体型号可能因市场

2024年7月28日 00:15

苹果游戏笔记本(苹果游戏笔记本推荐)

苹果游戏笔记本(苹果游戏笔记本推荐)

苹果游戏笔记本推荐“苹果游戏笔记本推荐”相关内容条理明确的解释如下:一、苹果游戏笔记本概述苹果公司推出的游戏笔记本,主要面向游戏爱好者和专业设计师等需要高性能笔记本的用户群体。苹果游戏笔记本在设计和性能上都有很高的要求,可以满足用户在游戏、

2024年7月15日 10:31

联想 ideapad(联想 ideapad 7000)

联想 ideapad(联想 ideapad 7000)

联想 ideapad 7000联想Ideapad 7000系列是一款由联想公司推出的笔记本电脑系列。以下是一些关于联想Ideapad 7000系列的相关内容:1. 设计与外观: - 联想Ideapad 7000系列通常拥有现代且时尚的外

2024年7月6日 10:46

东芝笔记本驱动下载(东芝笔记本驱动下载官网)

东芝笔记本驱动下载(东芝笔记本驱动下载官网)

东芝笔记本驱动下载官网关于“东芝笔记本驱动下载官网”的相关内容,以下为您进行条理清晰的解释:1. 官网定义:东芝笔记本驱动下载官网是指东芝笔记本电脑官方提供的驱动程序下载平台。这个平台专门为东芝笔记本用户提供各型号笔记本电脑的驱动程序,确保

2024年7月20日 18:46

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1731
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1156
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1153
标签列表

热门搜索