java点型减法

java Point type subtraction

我正在尝试实现这个减法

问题是当我尝试使用它时它给我一个错误这是我的代码

public Point subtract( Point p1, Point p2) {
    Point p3 = new Point();
    p3 = p1 - p2;   ////getting error here
    return p3;
}


public int isHorizonatalCollision(Objects object) {
    int tru = 0;
    int leftColli = 1;
     Point eqp;
     eqp =  subtract(posi(), nposi());

        if (eqp == objposi(object) )
        {
            return leftColli;
        }
        return tru; 
    }

Java 不允许运算符重载,因此您不能在 Java.

中减去您自定义的 classes

减法仅对 built-in 数字基元及其对应对象(intdoublefloat、...和Integer有效Double, ...)。 Java 无法知道您的 Point class 上的 - 应该做什么。

如果减法的语义是分别减去每个坐标,则必须这样编码:

class Point {
    int x;
    int y;

    ...

    public Point subtract(Point another) {
        return new Point(this.x - another.x, this.y - another.y);
    }
}
public static Point subtract(Point p1, Point p2) {
    return new Point(p1.x - p2.x, p1.y - p2.y);
}

或者

public static Point subtract(Point p1, Point p2) {
    return new Point(p1.getX() - p2.getX(), p1.getY() - p2.getY());
}