1 //4.复数的定义与描述
  2 package test;
  3 
  4 import java.util.Scanner;
  5 
  6 public class complex {//复数类
  7       double real;//实部
  8       double image;//虚部
  9       complex(){
 10         Scanner in=new Scanner(System.in);
 11         double real=in.nextDouble();
 12         double image=in.nextDouble();
 13         complex(real,image);
 14       }
 15   public complex(double real, double image) {//有参构造函数
 16     this.real = real;
 17     this.image = image;
 18   }
 19   private void complex(double real, double image) {//给无参构造函数调用
 20     this.real = real;
 21     this.image = image;
 22   }
 23   public double getReal() {
 24     return real;
 25   }
 26   public void setReal(double real) {
 27     this.real = real;
 28   }
 29   public double getImage() {
 30     return image;
 31   }
 32   public void setImage(double image) {
 33     this.image = image;
 34   }
 35   //复数相加
 36   complex add(complex a) {
 37     double real2=a.getReal();
 38     double image2=a.getImage();
 39     double newreal=real+real2;
 40     double newimage=image+image2;
 41     complex result=new complex(newreal, newimage);
 42     return result;
 43   }
 44   //复数相减
 45   complex sub(complex a) {
 46     double real2=a.getReal();
 47     double image2=a.getImage();
 48     double newreal=real-real2;
 49     double newimage=image-image2;
 50     complex result=new complex(newreal, newimage);
 51     return result;
 52   }
 53   //复数相乘
 54   complex mul(complex a) {
 55     double real2=a.getReal();
 56     double image2=a.getImage();
 57     double newreal=real*real2-image*image2;
 58     double newimage=image*real2 + real*image2;
 59     complex result=new complex(newreal, newimage);
 60     return result;
 61   }
 62   //复数相除
 63   complex div(complex a) {
 64     double real2=a.getReal();
 65     double image2=a.getImage();
 66     double newreal=(real*real2+image*image2)/(real2*real2 + image2*image2);
 67     double newimage=(image*real2 - real*image2)/(real2*real2 + image2*image2);
 68     complex result=new complex(newreal, newimage);
 69     return result;
 70   }
 71   // 输出  
 72    public void print(){ 
 73           if(image > 0){  
 74               System.out.println(real + " + " + image + "i");  
 75           }else if(image < 0){  
 76               System.out.println(real + "" + image + "i");  
 77           }else{  
 78               System.out.println(real);  
 79           }  
 80       } 
 81 }
 82 
 83 
 84 package test;
 85 
 86 public class complextest {
 87 
 88   public static void main(String[] args) {
 89     System.out.println("请输入第一个复数的实部和虚部:");
 90         complex a1=new complex();
 91         
 92         System.out.println("请输入第二个复数的实部和虚部:");
 93         complex a2=new complex();
 94         
 95         complex add=a1.add(a2);
 96         complex sub=a1.sub(a2);
 97         complex mul=a1.mul(a2);
 98         complex div=a1.div(a2);
 99         
100         //输出
101         System.out.println("相加的结果为:");
102         add.print();
103         System.out.println("相减结果为:");
104         sub.print();
105         System.out.println("相乘的结果为:");
106         mul.print();
107         System.out.println("相除的结果为:");
108         div.print();
109   }
110 
111 }