新闻中心> 文章详情

用Java实现复数的加减乘除运算

2016年03月14日

  1. 背景老师在课上布置了几道Java编程题,此为其中之一 2. 题目内容设计一个类Complex,用于封装对复数的下列操作:

 

  (1)一个带参数的构造函数,用于初始化复数成员(2)一个不带参数的构造函数,调用代参数的构造函数完成对复数成员的初始化。南京Java培训

 

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

 

  (4)以复数的标准形式:x+iy 输出此复数(5) 写两个函数,分别获得复数的实部getReal(),getImage()和虚部。

 

  老师原题如上,自己做了两个复数的加减乘除运算,使用的是实例方法。如果要写静态方法,即类方法,要加static,再根据相应变化修改。区别是:实例方法既可调用实例变量和实例方法,又可调用类变量和类方法。类方法只可调用类变量和类方法。因时间关系,明天还有课,自己就暂且写了实例。南京Java培训

 

  3. 具体代码与解释<span style="font-family:SimSun; font-size:14px">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 stubthis.real = real;this.image = image;}

 

  Complex(double real,double image){ // 带参数的构造方法this.real = real;this.image = image;}

 

  public double getReal() {return real;} 南京Java培训

 

  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;}南京万和Java培训


上一篇下一篇
按时发顺丰

技术交流群

Java大数据交流群560819979    加入
Python技术交流群595083299    加入
Oracle技术交流群595119011    加入
Web前端技术交流群604697610    加入
Huawei技术交流群482919361    加入
Redhat技术交流群587875348    加入
UI设计技术交流群511649801    加入
Cisco技术交流群596886705    加入
IT运维技术交流群605888381    加入