Java Standard: Operatoren
Aus Wikibooks
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).
Die Operatoren können in vier (bzw. vier 1/2) Gruppen geordnet werden:
Inhaltsverzeichnis |
[Bearbeiten] Arithmetische Operatoren
- + 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 auf i 3 hinzu
- -=, /=, *=, %=, 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.
[Bearbeiten] Relationale Operatoren
- == 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.
[Bearbeiten] Boolesche Operatoren
- ! 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
[Bearbeiten] Bitweise Operatoren
- ~ 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.
[Bearbeiten] Vergleichsoperator instanceof
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)immertrue.
//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.