Lernpfad:Objektorientierte Programmierung mit Java/Methoden: Unterschied zwischen den Versionen

Aus Informatik-Box
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 36: Zeile 36:
== Methoden überladen ==
== Methoden überladen ==
Beim Überladen hat man mehrere Methoden mit demselben {{Farbig|Bezeichner|blue}} in einer Klasse, die sich alle in der {{Farbig|Parameterliste|orange}} unterscheiden. Beim Aufruf entscheidet der Interpreter anhand der Datentypen der übergebenen Werte, welche der Methoden ausgeführt werden muss.
Beim Überladen hat man mehrere Methoden mit demselben {{Farbig|Bezeichner|blue}} in einer Klasse, die sich alle in der {{Farbig|Parameterliste|orange}} unterscheiden. Beim Aufruf entscheidet der Interpreter anhand der Datentypen der übergebenen Werte, welche der Methoden ausgeführt werden muss.
<syntaxhighlight lang="java" line=1 highlight="7-13">
<syntaxhighlight lang="java" line=1 highlight="7-13,17-18">
public class Addierer  {
public class Addierer  {



Version vom 4. Januar 2019, 21:57 Uhr

Methoden im Überblick

Methoden implementieren

Methoden in Java-Klassen bestehen aus einem Methodenkopf und einem Methodenrumpf. Der Kopf der Methode legt seine Signatur fest und der Rumpf enthält die Anweisungen.

Ein Methodenkopf hat den folgenden Aufbau:

Sichtbarkeit Rückgabetyp Bezeichner( Liste von Parametern )

Ein Beispiel für einen korrekten Methodenkopf sieht so aus:

public void meineErsteMethode()

Die Liste von Parametern kann wie im Beispiel auch leer sein, dann müssen nur die Runden Klammern (()) angegeben werden. Der Rückgabetyp ist hier void, was für "nichts" steht. Die Begriffe Parameter und Rückgabetyp werden im Schritt Parameter und Rückgaben genauer beschrieben.

Die Sichtbarkeit ist im Beispiel public, also "öffentlich". Sie spielt erst eine Rolle, wenn in einem Programm mehrere Objekte auch unterschiedlicher Klassen beteiligt sind. Die Sichtbarkeit regelt, ob auch andere Objekte die Methode aufrufen (benutzen) dürfen. Genaueres wird im Schritt Referenzen beschrieben.

Der Methodenrumpf ist ein Block von Anweisungen, der durch geschweifte Klammern ({}) gekennzeichnet wird.

public void meineErsteMethode() {
    System.out.println("Hallo, Welt!");
}

Strukturierte Zerlegung

Methoden sind Bestandteile von Klassen, die aufgerufen werden können und eine Abfolge von Anweisungen ausführt (einen Algorithmus). Jede Methode hat einen bestimmten Zweck und kapselt eine Fähigkeit der Klasse. Jede Methode kann wiederum als Anweisung in anderen Methoden (unter bestimmten Bedingungen auch in anderen Klassen) benutzt werden. So lassen sich aus einzelnen Methoden komplexe Programme erstellen.

Auf diese Weise eigenen sich Methoden vor allem, ein komplexe Problem in Teilprobleme zu zerlegen, die leichter zu lösen sind und sich zur Lösung des komplexen Problems kombinieren lassen. Man spricht dann von der Strukturierten Zerlegung.

Methoden überladen

Beim Überladen hat man mehrere Methoden mit demselben Bezeichner in einer Klasse, die sich alle in der Parameterliste unterscheiden. Beim Aufruf entscheidet der Interpreter anhand der Datentypen der übergebenen Werte, welche der Methoden ausgeführt werden muss.

public class Addierer  {

    public int addiere(int a, int b) {
        return a + b;
    }

    public int addiere(int a, int b, int c) {
        return a + b + c;
    }

    public int addiere(int a, int b, int c, int d) {
        return addiere(a,b) + addiere(c,d);
    }

    public static void main(String[] args) {
        Addierer a = new Addierer();
        System.out.println( "addiere(3, 4, 5) = " + a.addiere(3, 4, 5) );
        System.out.println( "addiere(17, 3, 5, 8) = " + a.addiere(17, 3, 5, 8) );

    }

}
Icon Heft.png
Arbeitsauftrag
  1. Lies den "Abschnitt 2.7.10 Methoden überladen" im Onlinebuch "Java ist auch eine Insel".
  2. Erklärt die Aufrufreihenfolge der Methoden im Beispielprogramm oben (Klasse "Addierer").
  3. Erstellt ein (kleines) Beispielprojekt, an dem das Konzept "Überladen" erklärt werden kann.