在 Java 中使用构造函数复制对象


Java 中可以使用复制构造函数复制对象。复制构造函数采用单个参数,即要复制的同类对象。但是,复制构造函数只能由程序员显式创建,因为 Java 没有提供默认复制构造函数。

以下是展示此过程的程序 -

示例

 实时演示

class NumberValue {
   private int num;
   public NumberValue(int n) {
      num = n;
   }
   public NumberValue(NumberValue obj) {
      num = obj.num;
   }
   public void display() {
      System.out.println("The number is: " + num);
   }
}
public class Demo {
   public static void main(String[] args) {
      NumberValue obj1 = new NumberValue(12);
      NumberValue obj2 = new NumberValue(obj1);
      obj1.display();
      obj2.display();
   }
}

输出

The number is: 12
The number is: 12

下面让我们来了解一下上述程序。

NumberValue 类利用数据成员 num 和单一成员函数 display() 创建,该函数显示 num 的值。NumberValue 类中有两个构造函数,其中一个采用了 int 类型的单个参数,而另一个是采用了单个参数(即NumberValue 类的对象)的复制构造函数。以下代码片段展示了这一点 -

class NumberValue {
   private int num;
   public NumberValue(int n) {
      num = n;
   }
   public NumberValue(NumberValue obj) {
      num = obj.num;
   }
   public void display() {
      System.out.println("The number is: " + num);
   }
}

在 main() 方法中,创建了类 NumberValue 的对象 obj1 和 obj2,并为两者调用了 display() 方法。以下代码片段展示了这一点 -

public class Demo {
   public static void main(String[] args) {
      NumberValue obj1 = new NumberValue(12);
      NumberValue obj2 = new NumberValue(obj1);
      obj1.display();
      obj2.display();
   }
}

更新于:30-Jun-2020

328 次浏览

开启你的 职业生涯

完成课程,获得认证

开始吧
广告
© . All rights reserved.