一道关于用java语言表示坐标中点的编程题,急!

来源:百度知道 编辑:UC知道 时间:2024/05/18 03:14:09
定义一个point类,该类用两个int型变量表示屏幕坐标系上的一个点,其软件接口如下:
class Point{
public final static int EAST=1; //点移动的方向
public final static int SOUTH=2;
public final static int WEST=3;
public final static int NORTH=4;
public Point(int x,int y); //构造方法
public Point(); //构造方法
public Point(Point p); //构造方法
public void move(int x,int y); //当前点移至指定位置
public void move(int way) //按指定的方向将当前点移动一个像素
public double distance(int x,int y); //计算两个点之间的距离
public double distance(Point p); //计算两个点之间的距离
public int getX(); //返回当前点的X坐标
public int getY(); //返回当前点的Y坐标
public String toString(); //以格式(x,y)返回当前点的字符串}

谢谢回答!!
这就是全部了,当然还要求编写一个应用程序起始类测试该类。
我压根没有搞懂这题的意思,所以麻烦哪位知道的大虾告诉声。

你只说了条件,问题在哪儿呢?

从你的类看,是要写一个走迷宫或者图像处理的程序吧?

既然你以1,2,3,4表示方向,以x,y表示点,那么你的程序一定有一个数组用来存储坐标.

假设这个数组为A(),当前点的坐标表示为CurrentX和CurrentY

那么
public void move(int x,int y){
CurrentX=x;
CurrentY=y;
}

public void move(int way){
switch(way){
case 1:CurrentX=CurrentX-1;
case 2:CurrentY=CurrentY+1;
case 3:CurrentX=CurrentX+1;
case 4:CurrentY=CurrentY-1;
}
}

public double distance(int x,int y)
{
double dis;
dis=math.sqr(math.abs(CurrentX-x)*math.abs(CurrentX-x)+math.abs(CurrentY-y)*math.abs(CurrentY-Y));
distance=dis;
}

public double distance(Point p)
{
double dis;
dis=math.sqr(math.abs(CurrentX-p.x)*math.abs(CurrentX-p.x)+math.abs(CurrentY-p.y)*math.abs(CurrentY-p.Y));
distance=dis;
}

public int getX() //返回当前点的X坐标
{return CurrentX;}

public int getY() //返回当前点的Y坐标
{return CurrentY;}