1、声明复数类Complex,包含两个私有的成员变量实部real和虚部im(均为double类型),定义如下成员方法: 1)两个构造方法: Complex(double real, double im) { // 在带参的构造方法中给两个成员变量赋初值 } Complex() { // 在不带参的构造方法中,调用带参的构造方法,设成员变量的初值为0 } 2)定义方法: public Complex add(Object obj) // 实现两个复数相加; public Complex minus(Object obj) // 实现两个复数相减; 3)重写Object的toString方法,以a+bi的形式输出复数; 4)重写Object的equals方法,判断两个复数是否相等。 2、定义测试类,在main方法中对复数类Complex进行测试。 注:复数类Complex和测试类分别存放在各自的.java文件中。 测试说明 平台会对你编写的代码进行测试: 测试输入:5, 1,5,1; 预期输出: 请输入第一个复数的实部和虚部: complex1=5.0+1.0i 请输入第二个复数的实部和虚部: complex2=5.0+1.0i complex1+complex2=10.0+2.0i complex1-complex2=0.0 两个复数相等
时间: 2023-05-22 13:00:41 浏览: 120
以下是Complex类和测试类的代码:
Complex.java
public class Complex {
private double real;
private double im;
public Complex(double real, double im) {
this.real = real;
this.im = im;
}
public Complex() {
this(0, 0);
}
public Complex add(Object obj) {
Complex c = (Complex) obj;
return new Complex(this.real + c.real, this.im + c.im);
}
public Complex minus(Object obj) {
Complex c = (Complex) obj;
return new Complex(this.real - c.real, this.im - c.im);
}
@Override
public String toString() {
return real + " + " + im + "i";
}
@Override
public boolean equals(Object obj) {
if (obj instanceof Complex) {
Complex c = (Complex) obj;
return this.real == c.real && this.im == c.im;
}
return false;
}
}
TestComplex.java
import java.util.Scanner;
public class TestComplex {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入第一个复数的实部和虚部:");
double real1 = scanner.nextDouble();
double im1 = scanner.nextDouble();
System.out.print("请输入第二个复数的实部和虚部:");
double real2 = scanner.nextDouble();
double im2 = scanner.nextDouble();
Complex complex1 = new Complex(real1, im1);
Complex complex2 = new Complex(real2, im2);
System.out.println("complex1=" + complex1);
System.out.println("complex2=" + complex2);
Complex sum = complex1.add(complex2);
System.out.println("complex1 complex2=" + sum);
Complex diff = complex1.minus(complex2);
System.out.println("complex1-complex2=" + diff);
if (complex1.equals(complex2)) {
System.out.println("两个复数相等");
} else {
System.out.println("两个复数不相等");
}
}
}
测试结果:
请输入第一个复数的实部和虚部:5 1
请输入第二个复数的实部和虚部:5 1
complex1=5.0 + 1.0i
complex2=5.0 + 1.0i
complex1 complex2=10.0 + 2.0i
complex1-complex2=0.0 + 0.0i
两个复数相等