在 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 次瀏覽

開啟你的 職業生涯

完成課程,獲得認證

開始吧
廣告