在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,本文主要讲述java 语言实现的随机数生成算法,更多Java专业知识,广州疯狂java培训官网与你分享;

  设计一个类Complex,用于封装对复数的下列操作:

  (1)一个带参数的构造函数,用于初始化复数成员

  (2)一个不带参数的构造函数,调用代参数的构造函数完成对复数成员的初始化。

  (3)实现两个复数的加法,减法的静态方法和实例方法。

  (4)以复数的标准形式:x+iy 输出此复数

  (5) 写两个函数,分别获得复数的实部getReal(),getImage()和虚部。

  做了两个复数的加减乘除运算,使用的是实例方法。如果要写静态方法,即类方法,要加static,再根据相应变化修改。区别是:实例方法既可调用实例变量和实例方法,又可调用类变量和类方法。类方法只可调用类变量和类方法。

  3. 具体代码与解释

 

package Four;
  /**
  * @author Kun Sun
  * @Date: 2013.10.15
  */
  import java.util.Scanner;
  public class Complex { // 复数类
  double real; // 实部
  double image; // 虚部
  Complex(){ // 不带参数的构造方法
  Scanner input = new Scanner(System.in);
  double real = input.nextDouble();
  double image = input.nextDouble();
  Complex(real,image);
  }
  private void Complex(double real, double image) { // 供不带参数的构造方法调用
  // TODO Auto-generated method stub
  this.real = real;
  this.image = image;
  }
  Complex(double real,double image){ // 带参数的构造方法
  this.real = real;
  this.image = image;
  }
  public double getReal() {
  return real;
  }
  public void setReal(double real) {
  this.real = real;
  }
  public double getImage() {
  return image;
  }
  public void setImage(double image) {
  this.image = image;
  }
  Complex add(Complex a){ // 复数相加
  double real2 = a.getReal();
  double image2 = a.getImage();
  double newReal = real + real2;
  double newImage = image + image2;
  Complex result = new Complex(newReal,newImage);
  return result;
  }
  Complex sub(Complex a){ // 复数相减
  double real2 = a.getReal();
  double image2 = a.getImage();
  double newReal = real - real2;
  double newImage = image - image2;
  Complex result = new Complex(newReal,newImage);
  return result;
  }
  Complex mul(Complex a){ // 复数相乘
  double real2 = a.getReal();
  double image2 = a.getImage();
  double newReal = real*real2 - image*image2;
  double newImage = image*real2 + real*image2;
  Complex result = new Complex(newReal,newImage);
  return result;
  }
  Complex div(Complex a){ // 复数相除
  double real2 = a.getReal();
  double image2 = a.getImage();
  double newReal = (real*real2 + image*image2)/(real2*real2 + image2*image2);
  double newImage = (image*real2 - real*image2)/(real2*real2 + image2*image2);
  Complex result = new Complex(newReal,newImage);
  return result;
  }
  public void print(){ // 输出
  if(image > 0){
  System.out.println(real + " + " + image + "i");
  }else if(image < 0){
  System.out.println(real + "" + image + "i");
  }else{
  System.out.println(real);
  }
  }
  }
  package Four;
  /**
  * @author Kun Sun
  * @Date: 2013.10.15
  */
  public class MainClass { // 用于测试复数类
  /**
  * @param args
  */
  public static void main(String[] args) {
  // TODO Auto-generated method stub
  System.out.println("请用户输入第一个复数的实部和虚部:");
  Complex data1 = new Complex();
  System.out.println("请用户输入第二个复数的实部和虚部:");
  Complex data2 = new Complex();
  // 以下分别为加减乘除
  Complex result_add = data1.add(data2);
  Complex result_sub = data1.sub(data2);
  Complex result_mul = data1.mul(data2);
  Complex result_div = data1.div(data2);
  result_add.print();
  result_sub.print();
  result_mul.print();
  result_div.print();
  }
  }

  4. 测试运行结果

  请用户输入第一个复数的实部和虚部:

  5 4

  请用户输入第二个复数的实部和虚部:

  3 6

  8.0+10.Oi

  2.0-2.0i

  -9.0+42.0i

  0.8666666666666667-0.4i