1. 编程序
本题需要创建和定义的源程序文件及类如下:
源程序文件:Point.java,类:Point。
根据要求修改实验5第2题中定义的Point类。
(1) 去掉set方法。
(2) 添加如下构造方法:
public Point(); //将点的坐标值置为(0, 0)
public Point(intx,int y);
public Point(Point p);
(3) 添加以下成员方法:
public void move(intx, int y); //当前点移至指定位置
public double distance(Point p); // 计算当前点与参数点之间的距离
(4) 修改main方法的相关代码以进行相应的测试。主要测试构造方法和新添加的成员方法。
public class Point {
private int x,y;
public final static intEAST = 1; // 类的有名常量,用以表示的点移动方向
public final static intSOUTH =2;
public final static intWEST = 3;
public final static intNORTH =4;
//public void set(int x,int y){this.x=x;this.y=y;}
// 设置点的坐标值
public Point(){
this(0,0);
}// 将点的坐标值置为(0, 0)
public Point(int x,int y){
x=this.x;
y=this.y;
}
public Point(Point p){
this( p.x,p.y );
}
public void move(int x, inty){
this.x=x;this.y=y;
}// 当前点移至指定位置
public doubledistance(Point p){
returnMath.sqrt((this.x-0)*(this.x-0)+(this.y-0)*(this.y-0));
}// 计算当前点与参数点之间的距离
public void move(intorientation){
if(orientation==EAST)
x++;
if(orientation==SOUTH)
y--;
if(orientation==WEST)
x--;
if(orientation==NORTH)
y++;
}
// 按指定的方向将当前点移动1个像素
public double distance(intx, int y){
returnMath.sqrt((this.x-x)*(this.x-x)+(this.y-y)*(this.y-y));
}
// 计算当前点与指定点之间的距离
public boolean equals(Pointp){
if(x==p.getX()&&y==p.getY())
return true;
else return false;
}
// 测试当前点与参数点p的坐标值是否相等
public int getX(){
return x;
}
// 返回当前点的X坐标