二、上机内容:

1、观看视频:“第05章:面向对象基础”。

 

2、编写一个类实现复数的运算。

复数类ComplexNumber的属性:

 m_dRealPart:实部,代表复数的实数部分。

 m_dImaginPart:虚部,代表复数的虚数部分。

复数类ComplexNumber的方法:

ComplexNumber():构造函数,将实部、虚部都置为0。

ComplexNumber(double r,double i):构造函数,创建复数对象的同时完成复数的实部、虚部的初始化,r为实部的初值,i为虚部的初值。

getRealPart():获得复数对象的实部。

getImaginPart():获得复数对象的虚部。

setRealPart(double d):把当前复数对象的实部设置为给定的形式参数的数字。

setImaginaryPart(double d):把当前复数对象的虚部设置为给定的形式参数的数字。

complexAdd(ComplexNumber c):当前复数对象与形式参数复数对象相加,所得的结果也是复数值,返回给此方法的调用者。

complexAdd(double c):当前复数对象与形式参数实数对象相加,所得的结果仍是复数值,返回给此方法的调用者。

complexMinus(ComplexNumber c) :当前复数对象与形式参数复数对象相减,所得的结果也是复数值,返回给此方法的调用者。

complexMinus(double c) :当前复数对象与形式参数实数对象相减,所得的结果仍是复数值,返回给此方法的调用者。

complexMulti(ComplexNumber c):当前复数对象与形式参数复数对象相乘,所得的结果也是复数值,返回给此方法的调用者。

complexMulti(double c):当前复数对象与形式参数实数对象相乘,所得的结果仍是复数值,返回给此方法的调用者。

toString():把当前复数对象的实部、虚部组合成a+bi的字符串形式,其中和分别为实部和虚部的数据。

 

3、编写Java Application程序使用上题定义的类,检查类定义是否正确。


二。代码参考

public class ComplexNumber{
	double m_dRealPart,m_dImaginPart;
	//ComplexNumber():构造函数,将实部、虚部都置为0。
	public ComplexNumber()
	{
		this.m_dRealPart=0;
		this.m_dImaginPart=0;
	}
	//ComplexNumber(double r,double i):构造函数,创建复数对象的同时完成复数的实部、虚部的初始化,
	//r为实部的初值,i为虚部的初值。
	public ComplexNumber(double r,double i)
	{
		this.m_dRealPart=r;
		this.m_dImaginPart=i;
	}


	public double get_dRealPart() {
		return m_dRealPart;
	}

	public void set_dRealPart(double mDRealPart) {
		m_dRealPart = mDRealPart;
	}

	public double get_dImaginPart() {
		return m_dImaginPart;
	}

	public void set_dImaginPart(double mDImaginPart) {
		m_dImaginPart = mDImaginPart;
	}
	//complexAdd(ComplexNumber c):当前复数对象与形式参数复数对象相加,所得的结果也是复数值,返回给此方法的调用者。
	
	public ComplexNumber complexAdd(ComplexNumber c)
	{
		ComplexNumber cm=new ComplexNumber();
		cm.m_dImaginPart=c.m_dImaginPart+this.m_dImaginPart;
		cm.m_dRealPart=c.m_dRealPart+this.m_dRealPart;
		return cm;
	}
	//complexAdd(double c):当前复数对象与形式参数实数对象相加,所得的结果仍是复数值,返回给此方法的调用者。
	
	public ComplexNumber complexAdd(double c)
	{
		ComplexNumber cm=new ComplexNumber();
		cm.m_dImaginPart=this.m_dImaginPart;
		cm.m_dRealPart=this.m_dRealPart+c;
		return cm;
	}
	//complexMinus(ComplexNumber c) :当前复数对象与形式参数复数对象相减,所得的结果也是复数值,返回给此方法的调用者。
	public ComplexNumber complexMinus(ComplexNumber c)
	{
		ComplexNumber cm=new ComplexNumber();
		cm.m_dImaginPart=this.m_dImaginPart-c.m_dImaginPart;
		cm.m_dRealPart=this.m_dRealPart-c.m_dRealPart;
		return cm;
	}
	
	//complexMinus(double c) :当前复数对象与形式参数实数对象相减,所得的结果仍是复数值,返回给此方法的调用者。
	
	public ComplexNumber complexMinus(double c)
	{
		ComplexNumber cm=new ComplexNumber();
		cm.m_dRealPart=this.m_dRealPart-c;
		cm.m_dImaginPart=this.m_dImaginPart;
		return cm;
	}
	
	//complexMulti(ComplexNumber c):当前复数对象与形式参数复数对象相乘,所得的结果也是复数值,返回给此方法的调用者。
	
	public ComplexNumber complexMulti(ComplexNumber c)
	{
		ComplexNumber cm=new ComplexNumber();
		cm.m_dImaginPart=this.m_dImaginPart*c.m_dImaginPart;
		cm.m_dRealPart=this.m_dRealPart*c.m_dRealPart;
		return cm;
	}
	
	//complexMulti(double c):当前复数对象与形式参数实数对象相乘,所得的结果仍是复数值,返回给此方法的调用者。 
	
	public ComplexNumber complexMulti(double c)
	{
		ComplexNumber cm=new ComplexNumber();
		cm.m_dImaginPart=this.m_dImaginPart;
		cm.m_dRealPart=this.m_dRealPart*c;
		return cm;
	}
	
	//toString():把当前复数对象的实部、虚部组合成a+bi的字符串形式,其中和分别为实部和虚部的数据。
	
	public String toString()
	{
		String s1,s2;
		s1=((Double)this.m_dRealPart).toString();
		s2=((Double)this.m_dImaginPart).toString();
		if(this.m_dRealPart<0)s1="("+s1+")";
		if(this.m_dImaginPart<0)s2="("+s2+")";
		return s1+"+"+s2+"i";
	}
	
}

2)	ChooseComplexNumber:
  
public class ChooseComplexNumber {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        ComplexNumber c=new ComplexNumber();
        System.out.println("ComplexNumber 的无参构造函数初始化结果:"+c.toString());
        c.set_dRealPart(1.0);
        System.out.println("ComplexNumber 的set_dRealPart结果:"+c.toString());
        c.set_dImaginPart(2.0);
        System.out.println("ComplexNumber 的set_dImaginPart结果:"+c.toString());
        ComplexNumber c1=new ComplexNumber(12,25.0);
        System.out.println("ComplexNumber 的双double参数构造函数初始化结果:"+c1.toString());
        ComplexNumber c2=new ComplexNumber();
        c2=c.complexAdd(c1);
        System.out.println("复数"+c.toString()+"和复数"+c1.toString()+"相加结果:"+c2.toString());
        c2=c.complexAdd(10);
        System.out.println("复数"+c.toString()+"和实数"+((Double)(10.0)).toString()+"相加结果:"+c2.toString());
        c2=c.complexMinus(c1);
        System.out.println("复数"+c.toString()+"和复数"+c1.toString()+"相减结果:"+c2.toString());
        c2=c.complexMinus(10);
        System.out.println("复数"+c.toString()+"和实数"+((Double)(10.0)).toString()+"x相减结果:"+c2.toString());
        c2=c.complexMulti(c1);
        System.out.println("复数"+c.toString()+"和复数"+c1.toString()+"相乘结果:"+c2.toString());
        c2=c.complexMulti(10);
        System.out.println("复数"+c.toString()+"和实数"+((Double)(10.0)).toString()+"相乘结果:"+c2.toString());
	}

}