所以我正在研究这个二维物理脉冲引擎,我真的很想知道代码的每个部分发生了什么。在定义多边形的多边形类中,有一个部分我根本不理解。
下面是代码链接: https://github.com/ClickerMonkey/ImpulseEngine/tree/master/src/org/magnos/impulse
单击多边形类并向下滚动到名为 public Shape clone() 的方法。在这个方法中有“p.u.set( u );”。我根本不明白这是什么意思,甚至不明白它的作用。如果有人能够解释代码中这一行的作用,我将不胜感激。
感谢您的阅读
最佳答案
首先要了解Polygon
扩展了Shape
...
public class Polygon extends Shape
在Shape
中,它将u
定义为public Final Mat2 u = new Mat2();
。
因此,在 Polygon#clone
中,它首先创建一个 Polygon
的新实例,并使用以下值设置此新实例的 u
对象: u
的当前实例...
Polygon p = new Polygon();
p.u.set( u ); // or p.u.set( this.u ); if it's easier to understand...
现在,在 Mat2
中,set(Mat2)
方法只是将参数的属性复制到它自己的值的属性...
public void set( Mat2 m )
{
m00 = m.m00;
m01 = m.m01;
m10 = m.m10;
m11 = m.m11;
}
所以,基本上,它所做的是将父 Polygon.u
(Mat2
) 的属性复制到子/克隆版本...
关于java - 多边形 类 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24986977/