Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich stehe atkuell auf dem Schlauch bei einer Aufgabe mit Komplexen Zahlen. Aber eigentlich sind nicht die Komplexen Zahlen das problem sondern mehr die Objekt orientierung.
Und zwar möchte ich zwei Komplexe zahlen addieren, also (re1 + re2 , im1 + im2). Nun möchte ich dafür eine Methode schreiben, die an einem Objekt aufgerufen wird, und als Parameter ein Objekt bekommt, und zu guter letzt eine instanz(obejkt) daovn zurück gibt.
Doch verstehe ich aktuell nicht genau wie ich das mache. Meine Ideen bis jetzt bis:
Java:
public class KomplexeZahl {
// Attribute
private double re;
private double im;
// Konstruktor
public KomplexeZahl(double realTeil, double imaginaerTeil) {
this.re = realTeil;
this.im = imaginaerTeil;
}
//Getter
public double getRe() {
return re;
}
public double getIm() {
return im;
}
// Methoden
/*
add metohde zum addieren zweier komplexen zahlen
*/
//KomplexeZahl Rückgabewert? Dann ein Objekt komplexezahl als Parameter?
public KomplexeZahl add(Komplexezahl k1){
//Mal angenommen ich würde diese Methode an einem Obejkt in main (oder so)aufrufen
// Dann würde ich vom aufgerufen Objekt den realteil mit dem parameter Objekt addieren
// und die jeweiligen imaginär teile und in einer neuen instanz speichern.
//Doch verstehe ich nicht wie ich das alles in dieser Methode unter einen Hut kriege
}
}
Wie kann ich diese überlegung richtig umsetzen, freue mich über jegliche Tipps!
Mit der übergebenen komplexen Zahl kannst du in der Methode rechnen k1.re und k1.im und zurück gibst du eine neue komplexe Zahl (mit return new KomplexeZahl(ergRe, ergIm)). Als Konstruktorparameter dafür nimmst du das Ergebnis der Berechnung.
Wärst du bereit mir das noch einmal genauer zu erklären?
und zwar meine überlegung jetzt :
Java:
public KomplexeZahl add(KomplexeZahl k1){
k1.getRe() + //ein Re von einem anderen Objekt? quasie das aufgerufene oder?
k1.getIm() + // hier das gleich
//ergRe und ergIm muss ich dan jeweils dem zuweisen
//also ergRe = k1.getRe() + welchesObjekt.getRe(); ? Komische Zeile :D
//Weiß aber nicht wie ich mein problem anders erklären könnte.
return new KomplexeZahl(ergRe,ergIm);
}
//In der Main würde das ja so aussehen oder?
public class MainKomplexeZahl{
public static void main (String[] args){
//Neues Objekt erstellen
KomplexeZahl c1 = new KomplexeZahl(2.0,5.0);
KomplexeZahl c2 = new KomplexeZahl(3.0,6.0);
//jetzt möchte ich es daran aufrufen
c1.add(c2);
//und dann ein neues Objekt als ergbis sollte dann raus kommen
//Wie kann ich aber das Ojbekt verwenden an dem aufgerufen wird
//bin verwirrt sorry!
}
}
Na das Objekt, dessen Methode add() aufgerufen wurde, also sozusagen: double ergRe = this.re + k1.re;
Da die Methode zur Klasse KomplexeZahl gehört, kannst du natürlich direkt auf die privaten Instanzvariablen re und im zugreifen ohne einen Getter verwenden zu müssen. Auch kannst du this weglassen, das steht nur zur Verdeutlichung dort double ergRe = re + k1.re;
Und den Returnwert der Methode musst du natürlich auch noch zuweisen (in deiner main()), sonst ist er weg: KomplexeZahl erg = c1.add(c2);