Java Standard: Operatoren

Aus Wikibooks
Wechseln zu: Navigation, Suche
Wikibooks buchseite.svg Zurück zu Variablen und Bezeichner | One wikibook.svg Hoch zu Java Inhaltsverzeichnis | Wikibooks buchseite.svg Vor zu Kontrollstrukturen


Operatoren werden nach der Anzahl Ihrer Operanden unterschieden zwischen

  • unäre Operatoren (= ein Operand),
  • binäre Operatoren (= zwei Operanden) und
  • ternäre Operatoren (= drei Operanden).

Arithmetische Operatoren[Bearbeiten]

  • + Plus-Operator
  • - Minus-Operator
  • * Multiplikations-Operator
  • / Divisions-Operator
  •  % Modulo-Operator, errechnet den Rest einer Division. Also: 5%2=1, weil 5/2=2 Rest 1
  • += Additionszuweisung, i+=3 zählt 3 auf i hinzu. Es entspricht also i = i + 3
  • -=, /=, *=, %=, wie Additionszuweisung, nur mit anderen Rechenarten
  • ++ Inkrement-Operator, ein unärer Operator, von dem es zwei Varianten gibt. Im Endeffekt verhalten sie sich wie i += 1, jedoch besteht ein kleiner Unterschied, wenn man sie einer Variablen zuweist:
    i = 1;
    a = ++i; // i = 2 und a = 2
 
    i = 1;
    b = i++; // i = 2 und b = 1
  • -- Dekrement-Operator, wie Inkrement, nur andersrum

Die arithmetischen Operatoren können nur auf numerische Variablen angewendet werden, wie Integer, Double, aber auch Character.

Relationale Operatoren[Bearbeiten]

  • == gleich
  •  != ungleich
  • > größer als
  • < kleiner als
  • >= größer als oder gleich
  • <= kleiner als oder gleich

Diese Operatoren sind in der Handhabung die gleichen wie in der normalen weiterführenden Schule.

Boolesche Operatoren[Bearbeiten]

  •  ! logisches "nicht"
  • & logisches "und"
  • | logisches "oder"
  • ^ logisches "exklusives oder", im Vergleich zum "oder" darf beim "exklusiven oder" nur einer der Operanden true sein. Wenn beide true sind, ist das Gesamtergebnis false. Sind beide Operanden false, ist das Gesamtergebnis auch false.
  • && short-circuit "und", sobald die erste Bedingung false ist, wird die zweite nicht überprüft
  • || short-circuit "oder", sobald die erste Bedingung true ist, wird die zweite nicht überprüft
  • &= "und"-Zuweisung
  • |= "oder"-Zuweisung
  • ^= "exklusives oder"-Zuweisung

Bitweise Operatoren[Bearbeiten]

  • ~ bitweises unäres "nicht", invertiert alle Bits seines Operanden
  • & bitweises "und", wenn beide Operanden 1 sind, wird ebenfalls eine 1 produziert, ansonsten eine 0
  • | bitweises "oder", produziert eine 1, sobald einer seiner Operanden eine 1 ist
  • ^ bitweises "exklusives oder", wenn beide Operanden den gleichen Wert haben, wird eine 0 produziert, ansonsten eine 1
  • &= bitweise "und"-Zuweisung
  • |= bitweise "oder"-Zuweisung
  • ^= bitweise "exklusive oder"-Zuweisung
  • >> Rechtsverschiebung, alle Bits des Operanden werden um eine Stelle nach rechts verschoben
  • >>> Rechtsverschiebung mit Auffüllung von Nullen
  • << Linksverschiebung
  • >>= Rechtsverschiebungzuweisung
  • >>>= Rechtsverschiebungzuweisung mit Auffüllung von Nullen
  • <<= Linksverschiebungzuweisung

Die bitweisen Operatoren werden nur selten eingesetzt, da sie schnell zu sehr kryptischem Code führen.

Vergleichsoperator instanceof[Bearbeiten]

  • instanceof überprüft ob ein Objekt eine Instanz einer bestimmten Klasse ist. Exakt ausgedrückt wird geprüft, ob eine Typübereinstimmung vorliegt. So ist (myJButtonObject instanceof JComponent) immer true.
    //IOException in eine Nestable packen
    NestableRuntimeException nestable = new NestableRuntimeException(new IOException());
    //Exception aus der Nestable holen 
    Exception ex = (Exception) nestable.getCause();
    //prüfen ob diese Exception eine IOException ist
    if(ex instanceof IOException) {
      //...
    }

gibt bei Übereinstimmung true und bei Nichtübereinstimmung false zurück

Anmerkung: sinnvoll z.B. bei Exceptions die überall im Programm erstmal "verpackt" und weiter geworfen werden sollen, aber nur an einer bestimmten Stelle des Programms ausgewertet werden dürfen.


Wikibooks buchseite.svg Zurück zu Variablen und Bezeichner | One wikibook.svg Hoch zu Java Inhaltsverzeichnis | Wikibooks buchseite.svg Vor zu Kontrollstrukturen