定义一个复数类,可以通过构造函数复数对象赋值,实部和虚部是该类的私有属性,必须有获取和修改属性的方法,并定义它与复数相加和相减的方法。小弟是新手,请高手不吝赐教~

解决方案 »

  1.   

    public class ComplexNumber {
    private double realpart;
    private double imaginarypart;

    /**
     * 有参数的构造方法,传入的参数分别为虚数的实部和虚部
     * @param realpart 实部
     * @param imaginarypart 虚部
     */
    public ComplexNumber(double realpart, double imaginarypart) {
    this.realpart = realpart;
    this.imaginarypart = imaginarypart;
    }

    /**
     * 无参的构造方法,默认初始化为实部和虚部都是0,调用有参的构造方法
     */
    public ComplexNumber() {
    this(0,0);
    }

    /**
     * 得到实部的值
     * @return 实部的值
     */
    public double getRealpart() {
    return realpart;
    }

    /**
     * 设置实部的值
     * @param realpart 实部的值
     */
    public void setRealpart(double realpart) {
    this.realpart = realpart;
    }

    /**
     * 返回虚部的值
     * @return 虚部的值
     */
    public double getImaginarypart() {
    return imaginarypart;
    }

    /**
     * 设置虚部的值
     * @param imaginarypart 虚部的值
     */
    public void setImaginarypart(double imaginarypart) {
    this.imaginarypart = imaginarypart;
    }

    /**
     * 复数的加法,当前的复数加上传入的另外一个复数,实部和实部相加,虚部和虚部相加
     * @param cn 传入的参数
     */
    public void add(ComplexNumber cn) {
    this.setRealpart(this.getRealpart() + cn.getRealpart());
    this.setImaginarypart(this.getImaginarypart() + cn.getImaginarypart());
    }

    /**
     * 复数的减法,当前的复数减去传入的另外一个复数,实部减实部,虚部减虚部
     * @param cn 传入的参数
     */
    public void minus(ComplexNumber cn) {
    this.setRealpart(this.getRealpart() - cn.getRealpart());
    this.setImaginarypart(this.getImaginarypart() - cn.getImaginarypart());
    }

    /**
     * 返回表示复数的字符串,形式为(a+bi)
     */
    @Override
    public String toString() {
    StringBuffer sb = new StringBuffer();
    sb.append(this.getRealpart());
    if(this.getImaginarypart() >= 0) {
    sb.append("+");
    sb.append(this.getImaginarypart());
    } else {
    sb.append(this.getImaginarypart());
    }
    sb.append("i");
    return sb.toString();
    }

    public static void main(String[] args) {
    ComplexNumber cn1 = new ComplexNumber(10,23);//调用有参的构造方法来new一个复数对象
    ComplexNumber cn2 = new ComplexNumber();//调用无参的构造方法来new一个复数对象
    cn2.setRealpart(25);//设置cn2的实部和虚部
    cn2.setImaginarypart(4);

    System.out.println("第一个复数为:" + cn1);
    System.out.println("第二个复数为:" + cn2);

    //复数加法,结果保存在cn1中
    cn1.add(cn2);
    //打印两个复数相加的和
    System.out.println("cn1和cn2的和为:" + cn1);

    //复数想减,结果保存在cn1中
    cn1.minus(cn2);
    //打印两个复数相加的差
    System.out.println("cn1和cn2的差为:" + cn1);
    }
    }