Ich möchte zwei komplexe Zahlen addieren und miteinander multiplizieren.
Leider klappt es noch nicht so, wie ich es mir vorstelle:
Fehler z.B. in Zeile 12 angezeigt :
Java:
publicclassComplex{double x1;// Realteil Zahl 1double x2;// Realteil Zahl 2 double y1;// Imaginaerteil Zahl 1double y2;// Imaginaerteil Zahl 2String i;Complex(double x1,double x2,double y1,double y2){this.x1=x1;this.x2=x2;this.y1=y1;this.y2=y2;}Complexadd(Complex z){// Addition zweier komplexer Zahlen
z=(x1+x2)+"+"+(y1+y2)/*+"*i"*/;return z;}Complexmult(Complex z){// Multiplikation zweier komplexer Zahlen
z=(x1*x2-y1*y2)+"+"+(x1*y2+x2*y1)/*+"*i"*/;return z;}Complexmult(double a){double z=(a*x1)+(a*y1)/*+*i*/;return z;}doubleRe(){return(x1+x2);}doubleIm(){return(y1+y2);}}
Du versuchst deinen Complex Objekt nen String zuzuweisen, das geht natürlich nicht. Du musst den Realteil und Imaginärteil berechnen und daraus dann nen neues Complex Objekt erzeugen dass du dann zurückgibst.
Sorry, es ist Zeile 13 und nicht 12.
Ich habe gedacht, dass die Komplexe Zahl Hintereinander aufgeschrieben , ja nichts anderes als ne Zeichenkette ist, also ein String.
Es ist doch aber auch kein int oder double.
Ich habe gedacht, dass die Komplexe Zahl Hintereinander aufgeschrieben , ja nichts anderes als ne Zeichenkette ist, also ein String.
Es ist doch aber auch kein int oder double.
Ganz genau.
Real + i*Img ist eine Darstellungsform, so wie ein Punkt im 2D-Koordinatensystem ebenso eine Darstellung ist. Wenn du eine Klasse schreibst, suchst du nach der Idee hinter etwas. Und diese Idee ist einfach, eine Zahl aus 2 Teilen zusammenzusetzen.
Deswegen musst du zB in einer add Methode von der Klasse auf der du die methode aufrufst den Realteil plus den Realteil der übergebenen Komplexen Zahl rechnen. Das gleiche für den Imaginärteil. Dann erstellst du eine neue Komplexe Zahl mithilfe deiner beiden Ergebnisse und gibst diese zurück (oder modifizierst die Zahlen der komplexen zahl auf der add aufgerufen wird. Was dir lieber ist)
Du musst klar unterscheiden zwischen dem Inhalt deiner Klasse und der Repräsentation nach außen hin. Als Inhalt benötigst du etwas, womit du auch rechnen kannst, also z.B. Real- und Imaginärteil als [c]double[/c]. Für eine hübsche Darstellung auf der Konsole überschreibst du die [c]toString[/c]-Methode, damit bei einem [c]System.out.println[/c] ein "42+4i" oder so rauskommt.