java的复制构造函数_什么是Java中的复制构造函数?
通常,復(fù)制構(gòu)造函數(shù)是通過使用先前已創(chuàng)建的相同類的對象初始化對象來創(chuàng)建對象的構(gòu)造函數(shù)。
Java支持復(fù)制構(gòu)造函數(shù),但與C語言不同,Java沒有提供您需要自己定義的顯式復(fù)制構(gòu)造函數(shù)。
寫一個拷貝構(gòu)造函數(shù)
通常,為了初始化類的實例變量的值(一種方式),我們創(chuàng)建一個參數(shù)化的構(gòu)造函數(shù),接受所有實例變量的值,并使用給定的值對其進行初始化。int?name;
int?age;
public?Student(String?name,?int?age){
this.name?=?name;
this.age?=?age;
}
但是,在復(fù)制構(gòu)造函數(shù)中,接受當(dāng)前類的對象,并使用獲取的對象中的值初始化實例變量的值。public?Student(Student?std){
this.name?=?std.name;
this.age?=?std.age;
}
然后,如果您創(chuàng)建了一個對象并通過傳遞對象來調(diào)用副本構(gòu)造函數(shù),則將獲得您之前創(chuàng)建的對象的副本。Student?std?=?new?Student("nameValue",?ageValue);
Student?copyOfStd?=?new?Student(std);
示例
以下是演示Java中的副本構(gòu)造函數(shù)的示例。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();
}
}
輸出結(jié)果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
總結(jié)
以上是生活随笔為你收集整理的java的复制构造函数_什么是Java中的复制构造函数?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 惠普台式计算机系列,惠普发布设计笔记本、
- 下一篇: python做大屏数据可视化_超强大!P