package de.hska.java.aufgaben.interfaces; /* * Abstrakter Datentyp, der eine komplexe Zahl und * die Operatoren + und * als Methoden definiert. *

* Eine komplexe Zahl ist durch einen Realteil a und * Imaginärteil b gegeben. Komplexe Zahlen werden * meist in der Form a + i*b angegeben. * i ist eine imaginäre Zahl mit * i2 := -1. * Das Symbol + verhält sich wie eine normale Addition * (es ist aber nur ein Trennsymbol, kein Operator). *

*

* Zwei komplexe Zahlen a1 + ib1 * und a2 + ib2 werden wie folgt * addiert und multipliziert: *

*

*/ public interface KomplexeZahl { /** * Gibt den Realteil dieses Komplexen Zahl zurück. */ public double getRealteil(); /** * Gibt den Imaginärteil dieser Komplexen Zahl zurück. */ public double getImaginaerteil(); /** * Addierte zwei komplexe Zahlen, indem Real- und * Imaginärteil addiert werden. * Wirft eine NullPointerException, falls zahl * null ist. */ public KomplexeZahl addieren(KomplexeZahl zahl); /** * Multipliziert zwei komplexe Zahlen a1+i*b1 * und a2+i*b2 und gibt das * Produkt (a1*a2 - b1*b2) + i(a1*b2 + a2*b1) zurück. * Wirft eine NullPointerException, falls zahl * null ist. */ public KomplexeZahl multiplizieren(KomplexeZahl zahl); }