Для чего эти методы?

Я делаю домашнее задание (составные классы по вычислению расстояния между двумя точками. У меня есть классы (линия, точка и главная). Я должен использовать методы, разработанные моим учителем на UML. Однако я обнаружил, что могу вычислить расстояние без выполнения некоторых методов Мне просто интересно, знает ли кто-нибудь, для чего они нужны.

Я считаю, что они используются для расчета и возврата расстояния точки P. Однако точка P имеет только 1 точку, так как ее можно рассчитать? Или, может быть, точка 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;
}

Мой основной метод будет генерировать случайное целое число и создавать экземпляр объекта со следующим результатом:

Point 1 (43, -90)
Point 2 (-70, -34)
Distance (126.1150)
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
599
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

how can i calculate distance with just a single point?

Вы бы не смогли с одним 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()
}

не уверен, в чем разница между «получить расстояние» и «расстояние», но, насколько я понимаю, вам нужно рассчитать расстояние между текущей точкой (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   ) );


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

Как вы выполняете этот метод? Где-то в основном методе вы создадите объект точки класса, выполните этот метод и передайте другой объект.

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;

}

Другие вопросы по теме