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类?
答案 0 :(得分:1)
这很简单。你可以做的是让构造函数将类对象类型作为参数,然后相应地设置值。
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"
答案 1 :(得分:0)
不为你做功课,但给你一点提示:
复制构造函数的想法是基于现有对象创建 new 对象;所以你可以写:
Circle first = new Circle(1.0);
Circle second = new Circle(first);
上面已经为您提供了新构造函数的签名。并且为了理解其他构造函数必须做什么:退一步思考:Circle有哪些属性;你会如何让另一个圆圈具有相同的属性?!
除此之外:了解构造函数和常规方法之间的区别。就像这里:
public void Circle(double r) {
}
根本没有任何感觉! (提示:构造函数不指定返回类型!)