Was bedeutet ein Ausrufezeichen vor einer MEthode z. B.!Methode() Java? (Also nru Ausrufezeichen ohen ein Gleichzeichen?

4 Antworten

Wir befinden uns hier in der (Bool'schen)Logik. Es wird also mit Wahrheitswerten gearbeitet.

Eine Variable vom Typ boolean kann in Java zwei Werte/ Zustände annehmen:

boolean myBool = true;

bzw

boolean myBool = false;

Wie Du sicher bereits weißt, können Variablen als Parameter an eine Funktion übergeben werden (zur Funktion):

... myFunction (int x, int y) ...

Genauso, kann eine Funktion aber auch einen Rückgabewert besitzen, in diesem Fall die Summe aus x und y (weg von der Funktion):

public int myFunction (int x, int y) {
    return x + y;
}

Dieser Rückgabewert muss natürlich keine Integer-Zahl sein, sondern kann jeder mögliche Datentyp sein.

So auch boolean.

Gibt eine Funktion eine Bool'sche Variable zurück, kann mit dieser dann folglich auch in logischen Operationen gearbeitet werden.

  • Ein Beispiel:
public boolean xKleinerY (int x, int y) {
    return x < y;
}

Diese Funktion übergibt als Rückgabewert ein true, falls x kleiner als y ist. Ansonsten ist der Rückgabewert false.

Man kann xKleinerY nun für alle möglichen logischen Arbeiten nutzen.

Logischerweise auch in Kombination mit Operatoren wie ==, ||, &&, ! und so weiter.

Hier eine Auswahl an möglichen Einsatzmöglichkeiten für

final int x = 1;
final int y = 2;

wenn auch nicht immer sinnvoll.

  • Beispiel 1
if (xKleinerY(x,y)) {
    //...
}
  • Beispiel 2
if (xKleinerY(x,y) && xKleinerY(y,x)) {
    //...
}
  • Beispiel 3
if (!xKleinerY(x,y)) {
    //...
}
  • Beispiel 4
if (xKleinerY(x,y) == xKleinerY(y,x)) {
    //...
}
  • Beispiel 5
final int z = xKleinerY(x,y) ? x : y;

...und es gibt noch so viel mehr Möglichkeiten.

Um nochmal zu Deiner Frage zu kommen: mit dem ! bildest Du nicht die Negation einer Funktion (wie auch?), sondern die Negation des (Bool'schen)Rückgabewerts der Funktion.

! ist dabei ein stinknormaler logischer Operator.

Bei weiteren Fragen kannst Du Dich gerne melden.

Grüße, Jacob

Von Experte TheFamousSpy bestätigt

Wenn eine Methode einen Boolean zurückgibt wird dieser Wert dann invertiert.

Gibt die Methode also true zurück, hast du dann false. Gibt die Methode false zurück, hast du nachher true.

Das Ausrufezeichen kannst du auch in Kombination mit Variablen verwenden:

!meinBoolean
!!!meinBoolean // macht keinen Sinn, geht aber
!true
Woher ich das weiß:Berufserfahrung – Informatiker Applikationsentwicklung

Der zurückgegebene Wert wird quasi inventiert.

z.B.

public static boolean isEven(int number) {

    if(number % 2 == 0) {

         return true;

    }


    return false;

}

public static void main(String[] args) {
    System.out.println(isEven(2));
}

Hier wäre der Output dann "true", da 2 ja eine gerade Zahl ist.

Setze ich nun ein ! vor die Methode, dann wäre der Output "false".

Einfach gesagt: Das Gegenteil kommt raus.

True - False

1 - 0

naja negierung des rückgabe wertes , mach mal ein konkretes beispiel und nicht so ein snipe das nur ein wort ist .