编写一段Java程序, 定义一个二维向量<a,b>类,其中a、b为其属性,主要操作如下: 向量相加:<a,b>+<c,d>=<a+c,b+d> 向量相减:<a,b>-<c,d>=<a-c,b-d> 向量内积:<a,b>*<c,d>=a*c+b*d 编程定义该类,并使用该类
时间: 2024-05-10 11:15:36 浏览: 105
以下是定义二维向量类的Java代码:
```java
public class Vector2D {
private double x;
private double y;
public Vector2D(double x, double y) {
this.x = x;
this.y = y;
}
public double getX() {
return x;
}
public double getY() {
return y;
}
public Vector2D add(Vector2D other) {
double newX = this.x + other.getX();
double newY = this.y + other.getY();
return new Vector2D(newX, newY);
}
public Vector2D subtract(Vector2D other) {
double newX = this.x - other.getX();
double newY = this.y - other.getY();
return new Vector2D(newX, newY);
}
public double dotProduct(Vector2D other) {
return (this.x * other.getX()) + (this.y * other.getY());
}
}
```
上面的代码定义了一个二维向量类`Vector2D`,其中包含两个私有属性`x`和`y`,分别表示向量的两个分量。该类有一个构造方法,用于初始化向量的两个分量。此外,该类还包含三个方法:
- `add`方法:用于实现向量相加,接受另一个向量作为参数,返回相加后的结果向量。
- `subtract`方法:用于实现向量相减,接受另一个向量作为参数,返回相减后的结果向量。
- `dotProduct`方法:用于实现向量内积,接受另一个向量作为参数,返回两个向量的内积结果。
下面是一个使用该类的示例程序:
```java
public class Vector2DTest {
public static void main(String[] args) {
Vector2D v1 = new Vector2D(1, 2);
Vector2D v2 = new Vector2D(3, 4);
// 向量相加
Vector2D v3 = v1.add(v2);
System.out.println("v1 + v2 = " + v3.getX() + ", " + v3.getY());
// 向量相减
Vector2D v4 = v1.subtract(v2);
System.out.println("v1 - v2 = " + v4.getX() + ", " + v4.getY());
// 向量内积
double dotProduct = v1.dotProduct(v2);
System.out.println("v1 * v2 = " + dotProduct);
}
}
```
运行结果如下:
```
v1 + v2 = 4.0, 6.0
v1 - v2 = -2.0, -2.0
v1 * v2 = 11.0
```
上面的程序创建了两个二维向量`v1`和`v2`,分别表示向量<1,2>和向量<3,4>。然后分别调用`add`、`subtract`和`dotProduct`方法,用于计算向量的相加、相减和内积结果。最后将结果打印到控制台上。
阅读全文