6.8 Die Klasse Mathematik
6.8.1 Die statische Methode loeseQuadGl in der Klasse Mathematik 
 
statische Methode Wir wollen damit beginnen eine eigene Klasse Mathematik zu implementieren. Sie soll ähnlich gebaut sein wie die von Java fertig gelieferte Klasse Math. Methoden der Klasse Math wie etwa die Methode random() werden so aufgerufen:

Math.random()

der Methodenname folgt, durch einen Punkt getrennt, dem Klassennamen . Es handelt sich also um sog. Klassenmethoden, im Quelltext der Klasse erkennt man sie  am Modifizierer 'static' im Methodenkopf. Zur Erinnerung und Unterscheidung, die Methoden der Klasse Turtle, sie werden z.B. so aufgerufen:

t1.forward(100),

wobei t1 eine Instanz, also ein Objekt der Klasse Turtle ist. Die Methode forward(...) ist also eine Objektmethode, im Quelltext der Klasse Turtle erkennt man dies daran, dass der Modifizierer 'static' fehlt.

Bauen wir nun unsere Klasse Mathematik auf. Der Rumpf hat folgende Gestalt.

public class Mathematik{
    //hier her kommen die Methoden
}

Die Datei, in der wir die Klasse speichern, muss ebenfalls den Namen 'Mathematik' haben. Wir vermerken noch: Der Java-Beans-Convention folgend, schreiben wir Klassennamen grundsätzlich groß. Die Klasse füllen nach und nach mit Methoden auf. Die erste Methode die wir schreiben wollen, ist die, die quadratische Gleichungen lösen kann. Ihr "Kopf" soll so aussehen:

public static String loeseQuadGl(double a, double b, double c){ 
  ....
}

Das Wort public besagt, dass es erlaubt ist von außen, also von anderen Klassen aus, auf diese Methode zuzugreifen. Mit dem Wort String werden wir uns einige Zeilen weiter unten beschäftigen. Beschäftigen wir uns zunächst mit.

loeseQuadGl(double a, double b, double c)

zuerst kommt der Name der Methode also loeseQuadGl; wir erinnern uns, dass wir die Bezeichner von Methoden mit kleinen Buchstaben beginnen lassen,  in der Mitte des Namens kann man, der leichteren Lesbarkeit halber, große Buchstaben verwenden. Als Bezeichner für Methoden wählt man sehr häufig Zeitwörter. Nach dem Bezeichner folgt, wir wir dies schon bei den selbst geschriebenen Methoden der Klasse MeineTurtle gesehen haben, in runden Klammern die Parameterliste. In ihr werden Variable deklariert, die bei Ihrem Aufruf mit Werten belegt werden. In unserem Fall erkennt man leicht, dass der Methode die Koeffizienten einer Quadratischen Gleichung übergeben werden sollen. Die Methode soll dann die quadratische  Gleichung, die mit den Werten von a, b und c festgelegt ist, lösen und die Lösung dem Aufrufer der Methode in einem String zurückgeben. Dass der Rückgabewert von Typ String sein soll, erkennt man an dem Wort String vor dem Methodennamen im Methodenkopf. Den Programmkode, der die Funktionalität der Methode implementiert, schreiben wir zwischen die geschweiften Klammern, also in den Methodenrumpf, dort also, wo noch die Punkte stehen haben. Der Quelltext sieht ähnlich aus, wie bei unserem Programm QuadGleichDemo.java, wie er in den Lösungen zu Kap 4.10.8 Übungen angeboten wird.  In den Zeilen

System.out.println("Text" +...);

ersetzen wir den Aufruf der println(...) - Methode durch return.

return "text" + ...;

Dabei steht das Wort return vor dem Ausdruck, dessen Wert an den Aufrufer der Methode geliefert wird. Jetzt verstehen wir das Wort String im Methodenkopf. Es sagt, es wird ein Wert eines Strings (=Zeichenkette) zurückgegeben.

 

Download:
Mathematik. java
public class Mathematik {
 public static String loeseQuadGl(double a, double b, double c){
   if (a==0){
      if (b==0){
         if (c==0){
            return("alle reellen Zahlen sind Loesungen");
         }
         else{
            return("Die Loesungsmenge ist leer");
         }
      }
      else {
         return("Die Loesung ist x = " + (-c/b));
      }
   }
   else{
      double d = b*b-4*a*c;
      if (d>=0){
         if (d==0){
            return("Die Loesung ist: x = " + (-b/(2*a)));
         }
         else{
           return ("x1 = " + ((-b+Math.sqrt(d))/(2*a)) +
                   ", x2 = " + ((-b-Math.sqrt(d))/(2*a)));
         }
      }
      else{
         return("Die Loesungsmenge ist leer");
      }
   }
 }
}

Die Klasse Mathematik lässt sich compilieren, aber man kann es nicht "laufen lassen". Dazu benötigen wir ein Programm ( = Klasse), die die Methode loeseQuadGl() aufruft.
 

zu 6.8.2 Testen der Methode loeseQuadGl(...)
zur Startseite www.pohlig.de  (C) MPohlig 2005