📄 complex.java
字号:
/**
* <p> 类:Complex 自定义复数类 </p>
* @author 肖磊
* @version 1.0
*/
public class Complex
{
// 以下为域成员定义------------------------------------------------
private double real; // 实部
private double imag; // 虚部
// 以下是构造方法--------------------------------------------------
public Complex()
{
real = 0.0;
imag = 0.0;
}
public Complex(double r,double i)
{
real = r;
imag = i;
}
// 以下为设置和读取域的方法----------------------------------------
public void setReal(double r) { real = r; }
public double getReal() { return real; }
public void setImag(double i) { imag = i; }
public double getImag() { return imag; }
// 以下是实现四则运算的方法----------------------------------------
public Complex add(Complex c) // 加法
{
Complex temp = new Complex();
temp.real = real + c.real;
temp.imag = imag + c.imag;
return temp;
}
public Complex sub(Complex c) // 减法
{
Complex temp = new Complex();
temp.real = real - c.real;
temp.imag = imag - c.imag;
return temp;
}
public Complex mul(Complex c) // 乘法
{
Complex temp = new Complex();
temp.real = real*c.real - imag*c.imag;
temp.imag = real*c.imag + imag*c.real;
return temp;
}
public Complex div(Complex c) // 除法
{
double d = c.real*c.real + c.imag*c.imag;
Complex temp = new Complex();
temp.real = (real*c.real + imag*c.imag)/d;
temp.imag = (imag*c.real - real*c.imag)/d;
return temp;
}
// 以下为转换为字符串方法------------------------------------------
public String toString()
{
if(imag>=0)
return real+"+i"+imag;
else
return real+"-i"+(-1*imag);
}
// 以下是用static方法实现四则运算(可选)----------------------------
public static Complex add(Complex c1,Complex c2)
{
return(new Complex(c1.real+c2.real,c1.imag+c2.imag));
}
public static Complex sub(Complex c1,Complex c2)
{
return(new Complex(c1.real-c2.real,c1.imag-c2.imag));
}
public static Complex mul(Complex c1,Complex c2)
{
double r = c1.real*c2.real - c1.imag*c2.imag;
double i = c1.real*c2.imag + c1.imag*c2.real;
return(new Complex(r,i));
}
public static Complex div(Complex c1,Complex c2)
{
double d = c2.real*c2.real + c2.imag*c2.imag;
double r = c1.real*c2.real + c1.imag*c2.imag;
double i = c1.imag*c2.real - c1.real*c2.imag;
return(new Complex(r/d,i/d));
}
}
// 用于测试Complex类的类---------------------------------------------
class ComplexTester
{
public static void main(String args[])
{
// 创建两个 Complex 对象-----------------------------------------
System.out.println("创建两个 Complex 对象------------------------");
Complex c1 = new Complex(4,5);
Complex c2 = new Complex(3,-2);
System.out.println("c1="+c1);
System.out.println("c2="+c2);
// 以下测试非静态方法的四则运算----------------------------------
System.out.println("以下测试非静态方法的四则运算-----------------");
System.out.println("c1+c2="+c1.add(c2));
System.out.println("c1-c2="+c1.sub(c2));
System.out.println("c1*c2="+c1.mul(c2));
System.out.println("c1/c2="+c1.div(c2));
// 以下测试静态方法的四则运算------------------------------------
System.out.println("以下测试静态方法的四则运算-------------------");
System.out.println("c1+c2="+Complex.add(c1,c2));
System.out.println("c1-c2="+Complex.sub(c1,c2));
System.out.println("c1*c2="+Complex.mul(c1,c2));
System.out.println("c1/c2="+Complex.div(c1,c2));
System.out.println("测试结束-------------------------------------");
}
}
// 程序结束 ---------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -