Closed. This question is opinion-based。它当前不接受答案。
                            
                        
                    
                
            
                    
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
                        
                        6年前关闭。
                    
                
        

嗨,我目前正在做一个小项目,我必须添加一个类,该类允许我将2个向量相加/相减。
例如,向量是向量(x,y,z)

最好的编码方式是什么?我不想使用互联网上的课程,因为我认为我需要的功能确实很基础。

这是我正在考虑的一些伪代码:
向量(x,y,z)是一个数组,其中[0] = x,[1] = y [2] = z
因此,如果我们有Vector1(x1,y1,z1)和Vector 2(x2,y2,z2),我们仅拥有一个3d数组,该数组基本上包含[0] = x1 + x2 [1] = y1 + y2和[2] = z1 + z2
那是正确的路吗?

最佳答案

如果您的向量始终是3维的,那么我就不会使用数组,这可能会使事情变得不太清楚。尝试这样的事情:

public class Vector {
  private final double x;
  private final double y;
  private final double z;

  public Vector(double x, double y, double z) {
    this.x = x;
    this.y = y;
    this.z = z;
  }

  // Getters...

  public Vector add(Vector addend) {
    return new Vector(x + addend.x, y + addend.y, z + addend.z);
  }

  // Other operations...
}


通常最好将字段设置为final,因此可以确定数据不会意外更改值,因为您不小心与代码的另一部分共享了引用。

07-27 13:45