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 数字基元及其对应对象(int
、double
、float
、...和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());
}
我正在尝试实现这个减法
问题是当我尝试使用它时它给我一个错误这是我的代码
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 数字基元及其对应对象(int
、double
、float
、...和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());
}