content

Signatur

Definition

Jede Methode hat einen Methodenkopf:

public void setName(String neuName)

Die Methodensignatur setzt sich zusammen aus

  • dem Methodennamen

  • der Anzahl, Reihenfolge und Typen der Parameter

⚠️ Der Rückgabetyp gehört in Java nicht zur Signatur!

public void doIt(String name, boolean a, int n, boolean c)
            ==== ======       =======    ===    =======

Signatur:
=> doIt String boolean int boolean

Ermittlung

Methodenköpfe:

001.png

Mit dem Leuchtstift wird die Signatur angestrichen:

002.png

Somit ergit sich die Signatur (untere ZEILE):

003.png

Prüfen

In Java dürfen jeweils 2 Methoden in EINER Klasse nur dann existieren, wenn sie sich in der Signatur unterscheiden!

Prüfen:

  • 2 wird mit 1 verglichen

  • 3 wird mit 1 und 2 verglichen

  • 4 wird mit 1, 2 und 3 verglichen

  • 5 wird mit 1, 2, 3 und 4 verglichen

  • 6 wird mit 1, 2, 3, 4 und 5 verglichen => 6 und 4 haben die gleiche Signatur

  • 7 wird mit 1, 2, 3, 4, 5 und 6 verglichen => 7 und 5 haben die gleiche Signatur

  • 8 wird mit 1, 2, 3, 4, 5, 6 und 7 verglichen

003.png

Eine der beiden Methoden 6 bzw. 4 gehört gelöscht.

Eine der beiden Methoden 7 bzw. 5 gehört gelöscht.

Syntaxfehler

004.png
005.png

Constructor

    public Student(String neuName, int neuAlter, boolean neuMatura)
    {
        setName(neuName);
        setAlter(neuAlter);
        setMatura(neuMatura);
    }

    public Student(String neuName, int neuAlter)
    {
        setName(neuName);
        setAlter(neuAlter);
        setMatura(false);
    }

    public Student(String neuName, boolean neuMatura)
    {
        setName(neuName);
        setAlter(14);
        setMatura(neuMatura);
    }

    public Student()
    {
        setName("UNKN");
        setAlter(14);
        setMatura(false);
    }

Die Konstruktoren müssen sich in der Signatur unterscheiden!

006.png

Es wird der Konstruktor mit folgender Signatur aufgerufen:

Student String boolean

007.png
008.png