Die Aufgabe besteht darin ein Programm zu schreiben, welches zwei komplexe Zahlen addiert .
hier ein erster Versuch, erst wurde eine Klasse angelegt:
Java:
publicclassComplex{privatedouble x;//Realteilprivatedouble y;//ImaginaerteilpublicComplex(double x,double y){this.x = x;this.y = y;}publicComplexadd(Complex z)//Methode zum Addieren{Complex k =this;//Erzeugung einer neuen complexen Zahldouble real = k.x + z.x;double imag = k.y + z.y;returnnewComplex(real, imag);}publicComplexmult(Complex z)//Methode zum Multiplizieren, falls ein Complex vorhanden ist{Complex k =this;double real = k.x * z.x - k.y * z.y;double imag = k.x * z.y + k.y * z.x;returnnewComplex(real, imag);}publicComplexmult(double a)//Methode zum Multiplizieren, falls ein double vorhanden ist{Complex k =this;double real = a * k.x;double imag = a *k.y;returnnewComplex(real,imag);}//Zurueckgabe vom Real-und Imaginaerteil der complexen ZahlpublicdoubleRe(){return x;}publicdoubleIm(){return y;}}
und dann das Testprogramm:
Java:
publicclassTestComplex{publicstaticvoid main (String[]args){Complex a =newComplex(2.1,3.0);Complex b =newComplex(1.0,4.0);//fuer die Zahl aSystem.out.println("Methode add: "+ a.add(b));System.out.println("Methode mult(complex): "+ a.mult(b));System.out.println("Methode mult(double): "+ a.mult(2.0));System.out.println("Rueckgabe Realteil: "+ a.Re());System.out.println("Rueckgabe Imaginaerteil: "+ a.Im());System.out.println();//fuer die Zahl bSystem.out.println("Methode add: "+ b.add(a));System.out.println("Methode mult(complex): "+ b.mult(a));System.out.println("Methode mult(double): "+ b.mult(3.0));System.out.println("Rueckgabe Realteil: "+ b.Re());System.out.println("Rueckgabe Imaginaerteil: "+ b.Im());}}
Leider läuft es noch nicht so, wie ich es mir vorstelle.
In der Ausgabe erscheint zwar ein Real - und ein Imaginaerteil , aber eben auch noch etwas, von dem ich mir nicht erklären kann, wo es herkommt.
Was muss ich verändern?
[JAVA=14]Complex k = this; //Erzeugung einer neuen complexen Zahl[/code]
Hier wird übrigens keine neue Instanz erzeugt, sondern nur [c]this[/c] über eine lokale Variable referenziert.
Nun z.B. "Mult(..)" gibt ein Complex zurück. Wenn du dann system.out.println(complex) machst, dann ruft er complex.toString() auf und du erhälst einen Identifier für das Objekt. Entweder überschreibst du toString() oder du machst dir ne Methode die dir deine komplexe Zahl sinnvoll als String ausgibt.