定义+;=用于Java中的自定义类

定义+;=用于Java中的自定义类,java,operator-overloading,Java,Operator Overloading,我正在制作一个简单的2D物理引擎,这是我第一次尝试制作任何类型的物理引擎。不幸的是,对于任何热爱物理教学的人来说,这不是一个与物理相关的问题。我只是想知道是否有一种方法可以定义一些简单的东西,比如自定义类的加法。例如,我创建了一个名为Vector2D的类。如果我有一个速度向量,和一个加速度向量,那么最简单的方法就是使用以下代码: Vector2D velocity = new Vector2D(xAxisVelocity, yAxisVelocity); Vector2D acceleratio

我正在制作一个简单的2D物理引擎,这是我第一次尝试制作任何类型的物理引擎。不幸的是,对于任何热爱物理教学的人来说,这不是一个与物理相关的问题。我只是想知道是否有一种方法可以定义一些简单的东西,比如自定义类的加法。例如,我创建了一个名为Vector2D的类。如果我有一个速度向量,和一个加速度向量,那么最简单的方法就是使用以下代码:

Vector2D velocity = new Vector2D(xAxisVelocity, yAxisVelocity);
Vector2D acceleration = new Vector2D(xAxisAcceleration, yAxisAcceleration);
void update() {
    velocity += acceleration;
}
然而,由于速度和加速度不是基本类型,所以我不能将它们相加。据我目前所知,我必须将它们的组件添加到一起,如下所示:

velocity.x+=加速度.x

……等等

我想知道的是:有没有一种方法可以定义类的加法,类似于可以重写
toString()
的方法


为了澄清这一点,对我来说,创建一个将两个向量相加的方法并没有什么大不了的,我只是想知道重写是否可行。

不,Java中没有运算符重载。这是一种设计选择,这是我们必须接受的


有关更多讨论,请参阅。

否,Java中没有运算符重载。这是一种设计选择,这是我们必须接受的


有关更多讨论,请参阅。

否-Java中没有用户定义的运算符重载。(这是有意的;语言设计者认为C++的这个特性导致了太多的问题。)

< P>不——java中没有用户定义的操作符重载。(这是有意的;语言设计者觉得C++的这个特性造成了太多的问题)。因此,请访问阅读我的答案。@EmilyM您可以随时将您的答案发布在链接副本上。@EmilyM感谢您的答案,这正是我已经做过的。因此,由于此问题被标记为副本,因此不允许我发布我的长答案。所以,请访问阅读我的答案。@EmilyM您可以随时将您的答案发布在链接副本上。@EmilyM感谢您的回答,这正是我已经做过的。