java初学之复数类及其运算

写一个复数类,可实现复数对象的构造及复数间加、减、乘法运算。包含注释。

class Complex{
	double real,im;
	
	Complex(double r, double m){ real=r;   im=m;	}     //构造复数类型
	Complex(){ real=im=0;	}
	
	public void add(Complex b){                           //加法运算
		System.out.print(this+" + "+b+" = ");
		this.real=this.real+b.real;                       //this对象,保存了结果
		this.im=this.im+b.im;
		System.out.println(this);
	}
	public void minus(Complex b){                         //减法运算
		System.out.print(this+" - "+b+" = ");
		this.real=this.real-b.real;
		this.im=this.im-b.im;
		System.out.println(this);
	}
	public void multiplication(Complex b) {               //乘法运算
		System.out.print(this+" * "+b+" = ");
		this.real=this.real*b.real-this.im*b.im;
		this.im=this.im*b.real+this.real*b.im;
		System.out.println(this);
	}
	public String toString(){                             //两种输出格式,可以自行删除注释符号测试一下两者的不同
		//return "("+real+"+"+im+"i"+")";                         //一般的输出格式
		return "("+String.format("%.2f", real)+"+"+String.format("%.2f", im)+"i"+")";//限制了有效位数的输出格式
	}
}
//测试类
class Test3{
	public static void main(String[] args){
		Complex a=new Complex(1,1);
		Complex b=new Complex(3.4,2.7);
		a.add(b);   a.minus(b);    a.multiplication(b);
	}
}

这是使用第二种toString保留有效位数的输出格式的输出:

(1.00+1.00i) + (3.40+2.70i) = (4.40+3.70i)
(4.40+3.70i) - (3.40+2.70i) = (1.00+1.00i)
(1.00+1.00i) * (3.40+2.70i) = (0.70+5.29i)

这是使用第一种toString一般输出格式的输出:

(1.0+1.0i) + (3.4+2.7i) = (4.4+3.7i)
(4.4+3.7i) - (3.4+2.7i) = (1.0000000000000004+1.0i)
(1.0000000000000004+1.0i) * (3.4+2.7i) = (0.7000000000000011+5.290000000000003i)

版权声明:本文为weixin_46764625原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。