java复数返回什么类型 java里怎样表示复数啊
各位老铁们,大家好,今天由我来为大家分享java复数返回什么类型,以及java里怎样表示复数啊的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
java里怎样表示复数啊
ic class Complex
{
private double real,im;//实部,虚部
public Complex(double real, double im)//构造方法
{
this.real= real;
this.im= im;
}
public Complex(double real)//构造方法重载
{
this(real,0);
}
public Complex()
{
this(0,0);
}
public Complex(Complex c)//拷贝构造方法
{
this(c.real,c.im);
}
public boolean equals(Complex c)//比较两个对象是否相等
{
return this.real==c.real&& this.im==c.im;
}
public String toString()
{
return"("+this.real+"+"+this.im+"i)";
}
public void add(Complex c)//两个对象相加
{//改变当前对象,没有返回新对象
this.real+= c.real;
this.im+= c.im;
}
public Complex plus(Complex c)//两个对象相加,与add()方法参数一样不能重载
{//返回新创建对象,没有改变当前对象
return new Complex(this.real+c.real, this.im+c.im);
}
public void subtract(Complex c)//两个对象相减
{//改变当前对象,没有返回新对象
this.real-= c.real;
this.im-= c.im;
}
public Complex minus(Complex c)//两个对象相减,与subtract()方法参数一样不能重载
{//返回新创建的对象,没有改变当前对象
return new Complex(this.real-c.real, this.im-c.im);
}
}
class Complex__ex
{
public static void main(String args[])
{
Complex a= new Complex(1,2);
Complex b= new Complex(3,5);
Complex c= a.plus(b);//返回新创建对象
System.out.println(a+"+"+b+"="+c);
}
}
/*
程序运行结果如下:
(1.0+2.0i)+(3.0+5.0i)=(40.0+7.0i)
*/
java 中实现复数的加减
(1):具体代码(附注释)
复数类:
publicclassComplex{
privatefloatshibu;
privatefloatxubu;
Complex()
{this(0,0);
}
Complex(floatshibu,floatxubu){
this.shibu=shibu;
this.xubu=xubu;
}
publicvoidAdd(Complexp)
{
Complexresult=newComplex();
result.shibu=this.shibu+p.shibu;
result.xubu=this.xubu+p.xubu;
System.out.print("加法结果为:"+result.shibu+"+"+result.xubu+"i");
}
publicvoidSub(Complexp)
{
Complexresult=newComplex();
result.shibu=this.shibu-p.shibu;
result.xubu=this.xubu-p.xubu;
System.out.print("加法结果为:"+result.shibu+"+"+result.xubu+"i");
}
publicvoidMul(Complexp)
{
Complexresult=newComplex();
result.shibu=this.shibu*p.shibu-this.xubu*p.xubu;
result.xubu=this.shibu*p.xubu+p.shibu*this.xubu;
System.out.print("乘法结果为:"+result.shibu+"+"+result.xubu+"i");
}
publicstaticvoidmain(String[]args){
Complexfushu1=newComplex(1,2);
Complexfushu2=newComplex(3,4);
fushu1.Add(fushu2);
fushu1.Sub(fushu2);
fushu1.Mul(fushu2);
}
}
(2):提供一个例子:源代码:
importjava.io.*;
publicclassBook{
doublesb;
doublexb;
Book(doublex,doubley){
this.sb=x;
this.xb=y;
}
Book(){
}
publicstaticvoidmain(Stringargs[]){
System.out.println("请输入数据:");
doublea=0;
doubleb=0;
doublec=0;
doubled=0;
Strings;
BufferedReaderin=newBufferedReader(newInputStreamReader(System.in));
System.out.println("请输入第一个复述的实部:");
try{
s=in.readLine();
a=Double.parseDouble(s);
}
catch(IOExceptione)
{System.out.println("抛掷异常");}
System.out.println("请输入第一个复述的虚部:");
try{
s=in.readLine();
b=Double.parseDouble(s);
}
catch(IOExceptione)
{System.out.println("抛掷异常");}
System.out.println("请输入第二个复述的实部:");
try{
s=in.readLine();
c=Double.parseDouble(s);
}
catch(IOExceptione)
{System.out.println("抛掷异常");}
System.out.println("请输入第二个复述的虚部:");
try{
s=in.readLine();
d=Double.parseDouble(s);
}
catch(IOExceptione)
{System.out.println("抛掷异常");}
Bookh;
h=newBook(a,b);
Bookj;
j=newBook(c,d);
System.out.println("您输入的一个数为:");
toString(h);
System.out.println("您输入的二个数为:");
toString(j);
Bookk;
k=newBook();
charz='y';
do{
System.out.println("请选择您要进行的计算:");
System.out.println("1:进行加法运算");
System.out.println("2:进行减法运算");
System.out.println("3:进行修改");
System.out.println("4:进行乘法运算");
System.out.println("5:进行除法运算");
System.out.println("6:查看修改结果");
inti=0;
try{
i=Integer.parseInt(in.readLine());
}
catch(IOExceptione)
{System.out.println("抛掷异常");}
switch(i)
{
case1:
k.sb=jia(h.sb,j.sb);
k.xb=jia(h.xb,j.xb);
System.out.println("计算结果的实部为:"+k.sb);
System.out.println("计算结果的虚部为:"+k.xb);
toString(k);
break;
case2:
k.sb=jian(h.sb,j.sb);
k.xb=jian(h.xb,j.xb);
System.out.println("计算结果的实部为:"+k.sb);
System.out.println("计算结果的虚部为:"+k.xb);
toString(k);
break;
case3:
System.out.println("请输入您要修改哪个实数:");
intl=0;
try{
l=Integer.parseInt(in.readLine());
}
catch(IOExceptione)
{System.out.println("抛掷异常");}
if(l==1)
{
h.xiugais(h);
h.xiugaix(h);
}
else
{
xiugais(j);
xiugaix(j);
}
break;
case4:
doublef=0;
doublee=0;
f=cheng(h.sb,j.sb)+cheng(h.xb,j.xb);
e=cheng(h.sb,j.xb)+cheng(h.xb,j.sb);
k.sb=(double)(Math.round(f*100)/100.0);
k.xb=(double)(Math.round(e*100)/100.0);
System.out.println("计算结果的实部为:"+k.sb);
System.out.println("计算结果的虚部为:"+k.xb);
toString(k);
break;
case5:
doublechushu=cheng(j.sb,j.sb)-cheng(j.xb,-j.xb);
doublebeichushus=jian(cheng(h.sb,j.sb),cheng(h.xb,-j.xb));
doublebeichushux=jia(cheng(h.sb,-j.xb),cheng(h.xb,j.sb));
k.sb=chu(beichushus,chushu);
k.xb=chu(beichushux,chushu);
System.out.println("计算结果的实部为:"+k.sb);
System.out.println("计算结果的虚部为:"+k.xb);
toString(k);
break;
case6:
System.out.println("修改后的结果为:");
System.out.println("第一个复数:"+toString(h));
System.out.println("第二个复数:"+toString(j));
break;
}
System.out.println("请问您是否还要继续y/n:");
try{
z=(char)System.in.read();
System.in.skip(2);//忽略回车换行
}
catch(IOExceptione){}
}while(z=='y');
}
publicstaticdoublegets(Booka){
returna.sb;
}
publicstaticdoublegetx(Bookb){
returnb.xb;
}
publicstaticdoublexiugais(Booka)
{
BufferedReaderin=newBufferedReader(newInputStreamReader(System.in));
System.out.println("请输入您要修改的实部:");
doublem=0;
try{
m=Double.parseDouble(in.readLine());
}
catch(IOExceptione)
{System.out.println("抛掷异常");}
a.sb=m;
System.out.println("修改成功:");
return0;
}
publicstaticdoublexiugaix(Bookb)
{
BufferedReaderin=newBufferedReader(newInputStreamReader(System.in));
System.out.println("请输入您要修改的虚部:");
doublen=0;
try{
n=Double.parseDouble(in.readLine());
}
catch(IOExceptione)
{System.out.println("抛掷异常");}
b.xb=n;
System.out.println("修改成功:");
return0;
}
publicstaticdoublejia(doublea,doubleb)//
{
doublec=0;
c=a+b;
System.out.println("加法成功:");
returnc;
}
publicstaticdoublejian(doublea,doubleb)
{
doublec=0;
c=a-b;
System.out.println("减法成功:");
returnc;
}
publicstaticdoublecheng(doublea,doubleb)
{
doublec=0;
c=a*b;
System.out.println("乘法成功:");
returnc;
}
publicstaticdoublechu(doublea,doubleb)
{
doubled=0;
doublec=0;
d=a/b;
c=(double)(Math.round(d*100)/100.0);
System.out.println("除法成功:");
returnc;
}
publicstaticdoubletoString(Booka){
System.out.println("结果为:"+a.sb+"+"+a.xb+"*i");
return0;
}
}
(3)测试结果截图:
java 复数问题
1、首先Java中的数都是有符号的
2、所以,负数的话只需直接在数字前面加个负号(-)即可,如-5。
3、要开平方的话,请直接调用Math.sqrt(数值)方法即可。
4、当然,由于要开平方的数都必须是正数,所以,你可以直接调用Math.abs(d)方法求绝对值最为正确与简便,而不用写成-(-5),代码里也不提倡此写法。
有问题请继续提问,欢迎采纳,谢谢!
关于java复数返回什么类型,java里怎样表示复数啊的介绍到此结束,希望对大家有所帮助。