Stannis
Lieutenant
- Registriert
- Juli 2011
- Beiträge
- 549
Tag. Das Programm soll ein wenig mit komplexen Zahlen spielen.
Ich verstehe das Problem nicht, Eclipse meldet mir mehrere Kompilierungsprobleme in den Zeilen 35, 39, 44, 56.
Das Codebeispiel aus Zeile 38 habe Ich sogar aus einer Tutorialwebsite kopiert - das muss stimmen....
Aber scheinbar nicht.
Ich nutze openjdk 1.8 und eben Eclipse 3.8
Der Fehler in Zeile 56 ist ein bisschen anders, aber unverständlicher.
1. Wieso warnt er mich, dass Ich eine Methode überschreibe? Genau das will Ich ja.
2. Was bedeutet hier "the return type is incompatible with object.clone ?
Ich verstehe das Problem nicht, Eclipse meldet mir mehrere Kompilierungsprobleme in den Zeilen 35, 39, 44, 56.
Das Codebeispiel aus Zeile 38 habe Ich sogar aus einer Tutorialwebsite kopiert - das muss stimmen....
Aber scheinbar nicht.
Ich nutze openjdk 1.8 und eben Eclipse 3.8
Der Fehler in Zeile 56 ist ein bisschen anders, aber unverständlicher.
1. Wieso warnt er mich, dass Ich eine Methode überschreibe? Genau das will Ich ja.
2. Was bedeutet hier "the return type is incompatible with object.clone ?
Code:
public final class Complex
{ public static void main(String[] args)
{
Complex z1 = new Complex(2.5, -0.7);
Complex z2 = new Complex(0.5, 1);
Complex z3 = new Complex(1.25, 0.35);
Complex z4 = z1.clone();
System.out.println(z1.toString()+"\n"+z1.toPolarString());
System.out.println(z2.toString()+"\n"+z2.toPolarString());
System.out.println(z3.toString()+"\n"+z3.toPolarString());
System.out.println(z4.toString()+"\n"+z4.toPolarString());
}
private double real, img, betrag, phase;
public Complex(double re, double im)
{ real = re;
img = im;
betrag = Math.sqrt(real*real + img*img);
phase = Math.atan2(img, real);
}
public Complex()
{ this(0,0);
}
public Complex(double re)
{ this(re,0);
}
public String toString()
{ return String.format("(%f %c j*%f)", real, (img >= 0)?'+':'-' ,img);
}
public String wtf()
{ String s = String.format("%-12.5f%.20f", 12.23429837482,9.10212023134);
return s;
}
public String toPolarString()
{ return String.format("%f * exp(%f * j)", betrag, phase);
}
public boolean equals(Object obj)
{ boolean rueck=false;
if(this == obj)
rueck = true;
return rueck;
}
public Complex clone()
{ return new Complex(real, img);
}
public int hashCode()
{ int ziffer=-1;
if(betrag == 0)
ziffer = 0;
else if(phase > 180)
ziffer = 1;
else if(phase < 180)
ziffer = 2;
return ziffer;
}
}