Java 如何使用复制构造函数
如何向类循环中添加复制构造函数?不是为您做作业,而是给您一点提示: 复制构造函数的思想是基于现有对象创建一个新的对象;这样你就可以写:Java 如何使用复制构造函数,java,constructor,Java,Constructor,如何向类循环中添加复制构造函数?不是为您做作业,而是给您一点提示: 复制构造函数的思想是基于现有对象创建一个新的对象;这样你就可以写: class Circle { private double r; public Circle(double r) { this.r = r; } public void Circle(double r) { } double calCircumference() { return 2 * Math.PI * r;
class Circle {
private double r;
public Circle(double r) {
this.r = r;
}
public void Circle(double r) {
}
double calCircumference() {
return 2 * Math.PI * r;
}
public double calArea() {
return Math.PI * r * r;
}
}
上面已经给出了新构造函数的签名。为了理解另一个构造器必须做什么:退一步想想:一个圆有哪些属性;你怎么能让另一个圆具有相同的性质
除此之外:了解构造函数和普通方法之间的区别。如下所示:
Circle first = new Circle(1.0);
Circle second = new Circle(first);
根本没有任何意义!(提示:构造函数不指定返回类型!)这非常简单。您可以让构造函数将类对象类型作为参数,然后相应地设置值
public void Circle(double r) {
}
我会称它为克隆构造函数,而不是复制构造函数。@在java中,是的,没有复制构造函数,但有克隆构造函数,它的行为与复制构造函数完全相同。复制构造函数是
this=c代码>假设您在对象中的意思是这样,是的
class Circle {
private double r;
public Circle(double r) {
this.r = r;
}
// Copy constructor
public Circle(Circle c) {
this.r = c.r;
}
}
// example of use case
Circle c1 = new c(5); // initialize c1
Circle c2 = new c(c1); // copy c1 to c2
c2.r = 3;
System.out.println(c1.r + " " ); // prints "5"
System.out.println(c2.r + " " ); // prints "3"