Anwendungssysteme Methoden/Funktionen/Prozeduren Grundlagen Unterprogramme Name: Datum: Klasse: Blatt Nr.: 1/1 Lfd. Nr.: Begriffseinordnung Der verwendete Fachbegriff für ein Unterprogramm unterscheidet sich je nach Programmiersprache. In Java sind Methoden ein Konstrukt, welches das Verhalten von Objekten beschreibt. Das heißt bei Aufruf einer Methode „macht“ ein Objekt etwas und liefert ggf. einen Ergebniswert zurück. In der C-Familie heißen Unterprogramme Funktionen und in älteren Programmiersprachen ist von Prozeduren die Rede. Gemeinsam haben aber alle diese Begriffe, dass hierdurch die Wiederverwendung von bestimmten Aufgaben erreicht wird. Beispiele System.out.println(); Math.sqrt(); Diese Methode kennen Sie alle und haben diese auch schon benutzt. Dahinter stehen allerdings mehr als 400 Zeilen Code und 12 weitere Methodenaufrufe. Der Vorteil von diesem Unterprogramm ist es, dass es dem Programmierer völlig egal sein kann, wie es funktioniert. Hier liegt auch die wichtige Eigenschaft von Methoden, die komplexe Software wie Spiele überhaupt ermöglicht. Nämlich, dass eine Methode ein bestimmtes Verhalten hat – Text auf den Bildschirm zu bringen – ohne dass der Programmierer sich über das wie Gedanken machen muss. Auch bekannt, diese Methode liefert uns zuverlässig die Wurzel aus der als Parameter übergebenen Zahl. Aber über die Funktionsweise haben Sie sich sicherlich noch keine Gedanken gemacht – warum auch? public static double sqrt(double x){ double y = x; double n = 2; for (int i = 1 ; i<20; i++) y = ((n-1)*Math.pow(y,n)+x)/ (n*Math.pow(y,n-1)); return y; } Methodendeklaration Klassenmethode Sichtbarkeit Rückgabedatentyp Methodenname Parameterliste public static String raeumDeinZimmerAuf(boolean steckerVomPcGezogen){ if(steckerVomPcGezogen) return “Ja mach ich !“; Methodenimplementierung else return “JaJa, später.“; } Parameter Parameter sind Werte, die der Methode zur Ausführung mitgegeben werden und das Verhalten beeinflussen. Die Parameterliste kann auch leer sein, aber dann müssen die Klammern trotzdem geschrieben werden. Ansonsten werden die Parameter mit einem Komma voneinander getrennt. Die vereinbarten Parameter werden formale Parameter genannt, da sie noch keine konkreten Werte haben, sondern nur als Platzhalter dienen. Beim Aufruf der Methode, werden diese Platzhalter durch die aktuellen Parameter (konkrete Werte) ersetzt. In Java wird immer eine Kopie des Wertes übergeben. Das heißt in der Methode können Sie mit den Werten anstellen was sie wollen, es hat keine Auswirkungen auf das restliche System. Rückgabedatentyp Jede Methode hat in Java einen Rückgabedatentyp. Dieser kann auch leer also void sein. Bei Berechnungen die ein Ergebnis zurückgeben wird an dieser Stelle verbindlich der Datentyp zugesichert. Ist der Rückgabedatentyp nicht void muss die Methode verbindlich einen Wert zurückliefern. Einen Wert liefern Sie mit dem Schlüsselwort return zurück. Return beendet gleichzeitig die Methode, d.h. es wird kein weiterer Quellcode in der Methode mehr ausgeführt. Wie Sie im oberen Beispiel sehen, kann eine Methode unterschiedliche Return-Anweisungen enthalten. Überladen Methoden müssen sich durch ihre Signatur (Methodenname und Parameterliste) unterscheiden, d.h. Methoden können den gleichen Namen haben, wenn sie sich durch ihre Parameterliste unterscheiden. ©Tenbusch