Я делаю домашнее задание (составные классы по вычислению расстояния между двумя точками. У меня есть классы (линия, точка и главная). Я должен использовать методы, разработанные моим учителем на 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)
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;
}