广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州Java Object.Clone方法是什么?_北大青鸟IT计算机学校

作者:邓华发布时间:2021-03-31分类:Java技术浏览:765


导读:Java是现在流行的编程语言之一,很多企业在开发软件的时候都会使用Java,因此,Java也成为了许多计算机学子必学的编程语言之一。那么,Java Object.Clone方法是什么?下面惠州北大青鸟老师给大家科普一下Java Object.Clone方法是什么。

Java是现在流行的编程语言之一,很多企业在开发软件的时候都会使用Java,因此,Java也成为了许多计算机学子必学的编程语言之一。那么,Java Object.Clone方法是什么?下面惠州北大青鸟老师给大家科普一下Java Object.Clone方法是什么。

Java不提供克隆(复制)对象的自动机制。

克隆对象意味着逐位复制对象的内容。

要支持克隆操作,请在类中实现clone()方法。

Object类中的clone()方法的声明如下:

protected  Object clone()  throws   CloneNotSupportedException

clone()方法声明为protected。因此,我们不能从客户端代码调用它。以下代码无效:

Object obj  = new Object();
Object clone = obj.clone(); // Error. Cannot  access protected clone() method

我们需要在类中声明clone()方法public克隆类的对象。

它的返回类型是Object。这意味着您将需要转换clone()方法的返回值。

假设MyClass是可克隆的。克隆代码将如下所示:

MyClass mc  = new MyClass();
MyClass clone = (MyClass)mc.clone(); // Need to use  a  cast

Object类中的clone()方法会抛出CloneNotSupportedException。

要调用clone()方法,我们需要将调用放在try-catch块中,或者重新抛出异常。

例子

以下代码显示了如何实现克隆方法。

class MyClass implements Cloneable {  private double value;  public MyClass(double value) {
   this.value = value;
 }  public void setValue(double value) {
   this.value = value;
 }  public double getValue() {    return this.value;
 }  public Object clone() {
   MyClass copy = null;    try {
     copy = (MyClass) super.clone();
   } catch (CloneNotSupportedException e) {
     e.printStackTrace();
   }    return copy;
 }
}public class Main {  public static void main(String[] args) {
   MyClass dh = new MyClass(100.00);

   MyClass dhClone = (MyClass) dh.clone();

   System.out.println("Original:" + dh.getValue());
   System.out.println("Clone :" + dhClone.getValue());

   dh.setValue(200.00);
   dhClone.setValue(400.00);

   System.out.println("Original:" + dh.getValue());
   System.out.println("Clone :" + dhClone.getValue());
 }
}

上面的代码生成以下结果。

Sat Jun 27 18:34:32 PDT 2015

Sat Jun 27 18:34:32 PDT 2015

想了解更多关于Java的资讯吗?可以来惠州北大青鸟新方舟校区了解一下。

java4.png

Java

标签:惠州计算机JAVA软件开发惠州计算机Java软件开发惠州计算机JAVA培训惠州计算机JAVA软件开发学校惠州计算机Java软件开发培训JAVAJava软件开发北大青鸟IT计算机学校北大青鸟IT软件学校北大青鸟IT学校


Java技术排行
标签列表
网站分类
文章归档
最近发表