编写另一个引用GeometricObject的构造函数是什么意思,GeometricObject指向一个对象而不是null?
如何将此对象初始化为参数对象的独立副本?
以下代码是GeometricObject类。
public class GeometricObject {
public String color = "white";
public double area = 0;
public double perimeter = 0;
public boolean filled;
/** Construct a default geometric object */
public GeometricObject() {
}
public GeometricObject(String color, boolean filled){
this.color = color;
this.filled = filled;
}
/** Return color */
public String getColor() {
return color;
}
/** Return area */
public double getArea(){
return area;
}
/** Return object */
public GeometricObject copy() {
return null;
}
/** Return perimeter */
public double getPerimeter(){
return perimeter;
}
/** Set a new color */
public void setColor(String color) {
this.color = color;
}
/** Return filled. Since filled is boolean,
* the get method is named isFilled */
public boolean isFilled() {
return filled;
}
/** Set a new filled */
public void setFilled(boolean filled) {
this.filled = filled;
}
@Override
public String toString() {
return "\ncolor: " + color + " and filled: " + filled;
}
答案 0 :(得分:0)
它基本上意味着您的构造函数接受同一个类的另一个对象,并使用其值实例化一个新对象。
public GeometricObject(final GeometricObject other){
this.color = other.color;
this.filled = other.filled;
//copy other member variables
}
然后,如果你有一个对象,你可以像这样创建它的副本:
final GeometricObject geometricObject = new GeometricObject();
//do stuff to geometricObject, give values to variables, etc
final GeometricObject copy = new GeometricObject(geometricObject);
答案 1 :(得分:0)
所以你应该像那样创建你的构造函数
public GeometricObject(GeometricObject original){
if (original != null) {
this.color = original.color;
... other variables ...
}
}