| using System;
public class Point: ICloneable {
private double x, y;
public Point(double x, double y){
this.x = x; this.y = y;
}
public double X {
get {return x;}
set {x = value;}
}
public double Y {
get {return y;}
set {y = value;}
}
public Point move(double dx, double dy){
Point result = (Point)MemberwiseClone(); // cloning from within Point is OK.
result.x = x + dx;
result.y = y + dy;
return result;
}
// public Clone method that delegates the work of
// the protected method MemberwiseClone();
public Object Clone(){
return MemberwiseClone();
}
public override string ToString(){
return "Point: " + "(" + x + "," + y + ")" + ".";
}
} |