在 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(); } }
廣告