设计一个复数类接口,依据此接口实现此复数类定义,并完成功能测试。

(1)在复数内部用双精度浮点数定义其实部和虚部;
(2)实现3个构造函数:第1个构造函数没有参数;第2个构造函数将双精度浮点数赋给复数的实部,虚部为0;第三个构造函数将两个双精度浮点数赋给复数的实部和虚部;
(3)编写获取和修改复数的实部和虚部的成员函数;
(4)编写实现复数的加法、减法、乘法运算的成员函数;
(5)设计一个测试主函数,使其实际运行验证类中各成员函数的正确性。

**UML图、流程图怎么画?

import java.util.Scanner;
/*
* 实现两个复数的加减运算
* */
public class ComplexDemo {
    // main方法
    public static void main(String[] a) {
        Scanner in=new Scanner(System.in);
        Complex b = new Complex(in.nextInt(), in.nextInt());
        Complex c = new Complex(in.nextInt(), in.nextInt());
        //输出复数的值
        System.out.println(b);
        System.out.println(c);
        //输出计算结果值
        System.out.println(b.add(c));
        System.out.println(b.minus(c));
    }
}
// Complex类
class Complex {
    private double m;// 实部
    private double n;// 虚部
    public Complex(double m, double n) {
        this.m = m;
        this.n = n;
    }
    // add
    public Complex add(Complex c) {
        return new Complex(m + c.m, n + c.n);
    }
    // minus
    public Complex minus(Complex c) {
        return new Complex(m - c.m, n - c.n);
    }
    @Override
    public String toString() {
        String rtr_str = "";
        if (n > 0) {
            rtr_str =m + "+" + n + "i";
        }
        if (n == 0) {
            rtr_str =m+"";
        }
        if (n < 0) {
            rtr_str =m +""+ n + "i";
        }
        return rtr_str;
    }
}