java的复制构造函数_什么是Java中的复制构造函数?
通常,復制構造函數是通過使用先前已創建的相同類的對象初始化對象來創建對象的構造函數。
Java支持復制構造函數,但與C語言不同,Java沒有提供您需要自己定義的顯式復制構造函數。
寫一個拷貝構造函數
通常,為了初始化類的實例變量的值(一種方式),我們創建一個參數化的構造函數,接受所有實例變量的值,并使用給定的值對其進行初始化。int?name;
int?age;
public?Student(String?name,?int?age){
this.name?=?name;
this.age?=?age;
}
但是,在復制構造函數中,接受當前類的對象,并使用獲取的對象中的值初始化實例變量的值。public?Student(Student?std){
this.name?=?std.name;
this.age?=?std.age;
}
然后,如果您創建了一個對象并通過傳遞對象來調用副本構造函數,則將獲得您之前創建的對象的副本。Student?std?=?new?Student("nameValue",?ageValue);
Student?copyOfStd?=?new?Student(std);
示例
以下是演示Java中的副本構造函數的示例。import?java.util.Scanner;
public?class?Student?{
private?String?name;
private?int?age;
public?Student(String?name,?int?age){
this.name?=?name;
this.age?=?age;
}
public?Student(Student?std){
this.name?=?std.name;
this.age?=?std.age;
}
public?void?displayData(){
System.out.println("Name?:?"+this.name);
System.out.println("Age?:?"+this.age);
}
public?static?void?main(String[]?args)?{
Scanner?sc?=new?Scanner(System.in);
System.out.println("Enter?your?name?");
String?name?=?sc.next();
System.out.println("Enter?your?age?");
int?age?=?sc.nextInt();
Student?std?=?new?Student(name,?age);
System.out.println("Contents?of?the?original?object");
std.displayData();
System.out.println("Contents?of?the?copied?object");
Student?copyOfStd?=?new?Student(std);
copyOfStd.displayData();
}
}
輸出結果Enter?your?name
Krishna
Enter?your?age
20
Contents?of?the?original?object
Name?:?Krishna
Age?:?20
Contents?of?the?copied?object
Name?:?Krishna
Age?:?20
總結
以上是生活随笔為你收集整理的java的复制构造函数_什么是Java中的复制构造函数?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 惠普台式计算机系列,惠普发布设计笔记本、
- 下一篇: java 字符串实例_Java字符串实例