复数类:
public class Complex {
private float shibu
private float xubu
Complex()
{this(0,0)
}
Complex(float shibu,float xubu){
this.shibu=shibu
this.xubu=xubu
}
public void Add(Complex p)
{
Complex result=new Complex()
result.shibu=this.shibu+p.shibu
result.xubu=this.xubu+p.xubu
System.out.print("加法结果为:"+result.shibu+"+"+result.xubu+"i")
}
public void Sub(Complex p)
{
Complex result=new Complex()
result.shibu=this.shibu-p.shibu
result.xubu=this.xubu-p.xubu
System.out.print("加法结果为:"+result.shibu+"+"+result.xubu+"i")
}
public void Mul(Complex p)
{
Complex result=new Complex()
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")
}
public static void main(String[] args) {
Complex fushu1=new Complex(1,2)
Complex fushu2=new Complex(3,4)
fushu1.Add(fushu2)
fushu1.Sub(fushu2)
fushu1.Mul(fushu2)
}
}
(2):提供一个例子:源代码:
import java.io.*
public class Book{
double sb
double xb
Book(double x,double y){
this.sb=x
this.xb=y
}
Book(){
}
public static void main(String args[]){
System.out.println("请输入数据:")
double a=0
double b=0
double c=0
double d=0
String s
BufferedReader in = new BufferedReader(new InputStreamReader(System.in))
System.out.println("请输入第一个复述的实部:")
try{
s = in.readLine()
a=Double.parseDouble(s)
}
catch(IOException e)
{ System.out.println("抛掷异常")}
System.out.println("请输入第一个复述的虚部:")
try{
s = in.readLine()
b =Double.parseDouble(s)
}
catch(IOException e)
{ System.out.println("抛掷异常")}
System.out.println("请输入第二个复述的实部:")
try{
s = in.readLine()
c =Double.parseDouble(s)
}
catch(IOException e)
{ System.out.println("抛掷异常")}
System.out.println("请输入第二个复述的虚部:")
try{
s = in.readLine()
d =Double.parseDouble(s)
}
catch(IOException e)
{ System.out.println("抛掷异常")}
Book h
h=new Book(a,b)
Book j
j=new Book(c,d)
System.out.println("您输入的一个数为:")
toString(h)
System.out.println("您输入的二个数为:")
toString(j)
Book k
k=new Book()
char z='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 :查看修改结果")
int i=0
try{
i= Integer.parseInt(in.readLine())
}
catch(IOException e)
{ System.out.println("抛掷异常")}
switch(i)
{
case 1:
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
case 2:
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
case 3:
System.out.println("请输入您要修改哪个实数:")
int l=0
try{
l= Integer.parseInt(in.readLine())
}
catch(IOException e)
{ System.out.println("抛掷异常")}
if(l==1)
{
h.xiugais(h)
h.xiugaix(h)
}
else
{
xiugais(j)
xiugaix(j)
}
break
case 4:
double f=0
double e=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
case 5:
double chushu=cheng(j.sb,j.sb)-cheng(j.xb,-j.xb)
double beichushus=jian(cheng(h.sb,j.sb),cheng(h.xb,-j.xb))
double beichushux=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
case 6:
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(IOException e){}
} while(z=='y')
}
public static double gets(Book a){
return a.sb
}
public static double getx(Book b){
return b.xb
}
public static double xiugais(Book a)
{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in))
System.out.println("请输入您要修改的实部:")
double m=0
try{
m= Double.parseDouble(in.readLine())
}
catch(IOException e)
{ System.out.println("抛掷异常")}
a.sb=m
System.out.println("修改成功:")
return 0
}
public static double xiugaix(Book b)
{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in))
System.out.println("请输入您要修改的虚部:")
double n=0
try{
n= Double.parseDouble(in.readLine())
}
catch(IOException e)
{ System.out.println("抛掷异常")}
b.xb=n
System.out.println("修改成功:")
return 0
}
public static double jia(double a,double b)//
{
double c=0
c=a+b
System.out.println("加法成功:")
return c
}
public static double jian(double a,double b)
{
double c=0
c=a-b
System.out.println("减法成功:")
return c
}
public static double cheng(double a,double b)
{
double c=0
c=a*b
System.out.println("乘法成功:")
return c
}
public static double chu(double a,double b)
{
double d=0
double c=0
d=a/b
c=(double)(Math.round(d*100)/100.0)
System.out.println("除法成功:")
return c
}
public static double toString(Book a){
System.out.println("结果为:"+a.sb+"+"+a.xb+"*i")
return 0
}
}
(3)测试结果截图:
1、real和image这两个field前面的static去掉。2、public Complex() 这个构造器去掉,如果要接受输入的话,应该放到main方法里,这样这个类更清晰。
3、静态方法Complex_add和Complex_minus没指定返回值类型,应该返回的是Complex。另外方法名字首字母应小写。
4、参考这个:http://zhidao.baidu.com/question/151336863.html
package mainpublic class Complex {
private int a
private int b
public Complex() {
this.a = 0
this.b = 0
}
public Complex(int a, int b) {
this.a = a
this.b = b
}
public int getA() {
return a
}
public void setA(int a) {
this.a = a
}
public int getB() {
return b
}
public void setB(int b) {
this.b = b
}
@Override
public String toString() {
return "(" + a + "+" + b + "i)"
}
}
package main
public class ComplexTest {
public static Complex add(Complex c1, Complex c2) {
return new Complex(c1.getA() + c2.getA(), c1.getB() + c2.getB())
}
public static Complex subtract(Complex c1, Complex c2) {
return new Complex(c1.getA() - c2.getA(), c1.getB() - c2.getB())
}
public static Complex multiply(Complex c1, Complex c2) {
return new Complex(c1.getA() * c2.getA() - c1.getB() * c2.getB(),
c1.getB() * c1.getA() + c1.getA() * c2.getB())
}
public static Complex division(Complex c1, Complex c2) {
int a = c1.getA()
int b = c1.getB()
int c = c2.getA()
int d = c2.getB()
return new Complex((a *c + b * d) / (c * c + d * d), (b * c - a * d) / (c * c + d * d))
}
public static void main(String []args) {
Complex c1 = new Complex(1, 2)
Complex c2 = new Complex()
System.out.println(c1)
System.out.println(c2)
System.out.println(add(c1, c2))
}
}