这些方法有什么用?

时间:2019-04-10 13:52:54

标签: java class composite

我正在做作业(计算两点之间的距离的综合类。我有类(Line,Point和Main)。我必须使用老师在UML上设计的方法。但是,我发现我可以在不完成某些方法的情况下计算距离。我只是想知道是否有人知道它们的用途。

我认为它们用于计算和返回点P的距离。但是,点P只有1个点,那么如何计算呢?还是Point P接受了我的第二个构造函数的值并复制了构造函数并进行了计算?谢谢大家的帮助。

以下是我的代码:

  

Class Point

class Point

{
private int x;
private int y;

//default constructor
public Point()
{
    //do nothing
}
// second constructor
public Point(int x, int y)
{
    this.x=x;
    this.y=y;
}


// Copy constructor 
public Point (Point p)
{
    this (p.x,p.y);
}

private double distance(Point p)
{
    // how can i calculate distance with just a single point?
}

public double getDistance(Point p)
{
    // how can i return distance with just a single point?
}
    // getter
public int getX()
{
return x;
}
public int getY()
{
return y;
}
    /setter
public void set(int x, int y)
{
this.x = x;
this.y = y;
}

我的main方法将生成随机整数并实例化具有以下结果的对象:

Point 1 (43, -90)
Point 2 (-70, -34)
Distance (126.1150)

3 个答案:

答案 0 :(得分:1)

  

我如何只计算一个点的距离?

您将无法仅拥有一个Point。但是您没有一个Point,而是两个Point。一个是当前对象,另一个是传递给该方法的对象。

不为您做作业,而只是清除混乱,以便您可以继续...

public double getDistance(Point p)
{
    // Here you would calculate and return the distance between "this" and "p".
    // So your values are:
    //   this.getX()
    //   this.getY()
    //   p.getX()
    //   p.getY()
}

答案 1 :(得分:0)

不确定“获取距离”和“距离”之间有什么区别,但是根据我的理解,您需要计算当前点(this.x,this.y)与另一点(您要发送的点)之间的距离通过功能)。

如此:

private double distance(Point p)
{
    // how can i calculate distance with just a single point?

    var dX = this.x- p.x ;
    var dY  = this.y- p.y ;

    return  ( Math.sqrt( dX * dX + dY * dY   ) );


}

答案 2 :(得分:0)

private double distance(Point p)
{
    // how can i calculate distance with just a single point?
}

您如何执行此方法?在main方法的某个位置,您将创建一个类点的对象,并执行该方法并传递另一个对象。

Point pointA = new Point (1,1);
Point pointB = new Point (3,3);
double distance = pointA.distance(pointB);

现在我们有了对象,并且传递了另一个对象。

private double distance(Point p)
{
    int distanceX = this.x - p.x;
    int distanceY = this.y - p.y;
    double result = //TODO some formula
    return result;

}