要求
1. 如下是已有的一个复数类,x,y分别代表实部和虚部。该类只支持加法(add)和乘法(multiply)计算,要求创建一个MyComplexNumber类,扩充该类的功能如下:
 增加求虚数的模(magnitude)的功能
 复数的减法(minus)计算
 原来的toString方法得到的复数表示是{3.5,12.81}的形式,要求在新的类里面修改为3.5+12.81i的形式。
2. 使用MyComplexNumber(注意,不是ComplexNumber)类完成几个复数的不同计算,并在屏幕输出结果。class ComplexNumber {    
    public double x, y;
    public ComplexNumber(double real, double imaginary) {
        this.x = real;
        this.y = imaginary;
    }    
   
    public String toString() { return "{" + x + "," + y + "}"; }    
    
    public void add(ComplexNumber a) {
        this.x=this.x+a.x;
        this.y=this.y+a.y;
    }
   
    public void multiply(ComplexNumber a) {
        x=x*a.x - y*a.y;
        y=x*a.y + y*a.x;
    }
}
1. 设计提示
MyComplexNumber继承ComplexNumber类,并追加两个方法minus和magnitude方法即可。另外,需要覆盖toString方法,生成a+bi的复数表示字符串。
2. 编写程序代码
public double magnitude();//求模定义  
public MyComplexNumber minus(MyComplexNumber a) ;//减法定义
我尝试了下
public class ComplexNumber {
public double x, y; public ComplexNumber(double real, double imaginary) {
this.x = real;
this.y = imaginary;
} public String toString() {
return "{" + x + "," + y + "}";
} public void add(ComplexNumber a) {
this.x = this.x + a.x;
this.y = this.y + a.y;
} public void multiply(ComplexNumber a) {
double m;
m = x;
x = x * a.x - y * a.y;
y = m * a.y + y * a.x;
}
}public class MyComplexNumber extends ComplexNumber {
public MyComplexNumber (double real, double imaginary) {
        super(real,imaginary);
    }    
public void minus(ComplexNumber a) {
        this.x=this.x-a.x;
        this.y=this.y-a.y;
    }
public void magnitude(ComplexNumber a) {
       double m = Math.sqrt(a.x*a.x+a.y*a.y);
       System.out.println("magnitude is:"+ m);
    }
public String toString() { return x + "+" + y + "i"; }}
public class calaculate {
public static void main(String[] args) {
double x1=1.0;
double y1=2.0;
double x2=3;
double y2=2;
MyComplexNumber num1=new MyComplexNumber(x1,y1);
MyComplexNumber num2=new MyComplexNumber(x2,y2);
    
num1.toString();
}}最后一个没写完,但是tostring没有输出,一直搞不明白,请哪位帮忙解释一下,先谢了

解决方案 »

  1.   

    System.out.println(num1.toString()); //toString只是返回一个字符串,你不让它输出它怎么会自己输出呢
      

  2.   

    toString()只是一个返回字符串的函数,要想输出还得用System.out.println()才行,或者在toString()里输出也行。
      

  3.   

    楼主所说的[但是tostring没有输出]的具体含义请解释一下。
      

  4.   

    System.out.println(); lz太粗心了 忘写输出语句了吧
      

  5.   

    应该像上面所说的!没有学输出语句的,你的调用方法toString(),它返回的是字符串.....并没有打印功能!