新闻中心> 文章详情
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培训