Java Grundlagen

Operatoren

Um mit den Werten (Operanden) in Java zu rechnen, können verschiedene Operatoren verwendet werden.

Arithmetische Operatoren

Arithmetische Operatoren können mit Zahlen als Werte verwendet werden.

Einstellige Operatoren (monadisch)

werden als Präfix notiert. Also vor dem Wert / Der Variable.

Operator Beispiel Funktion
+ + a Identität (Liefert den gleichen Wert wie a)
– a Negation (Liefert den negativen Wert von a)

Zweistellige Operatoren (dyadisch)

werden als Infix notiert. Also zwischen zwei Werten / Variablen.

Operator Bezeichnung Beispiel Wirkung
+ Addition a + b Addiert a und b
Subtraktion a – b subtrahiert a von b
* Multiplikation a * b multipliziert a mit b
/ Division a / b dividiert a durch b
% Modulo a % b Ermittelt den Rest von a / b

Zuweisungsoperator

Der Zuweisungsoperator dient dazu einer Variable einen Wert zuzuweisen. Dieser wird in Java durch das Gleich-Zeichen dargestellt.

Die variable „a“ enthält nun den Wert 5 des Datentyps int (Standard Datentyp für Ganzzahlen ohne explizite Angabe).

Auch dies ist denkbar. Hier wird mehreren Variablen der Wert 5 gleichzeitig zugeweisen, da d der Wert 5 zugeweisen wird. c wird der Wert d zugeweisen, der zu diesem Zeitpunkt bereits 5 ist usw.

Vergleichsoperator

Vergleichsoperatoren dienen dazu, die Werte miteinander zu vergleichen. Das Ergebnis von Vergleichsoperatoren ist stets true (wahr) oder false (falsch). Dabei handelt es sich um den Typ boolean (Wahrheitswert).

Operator Beispiel ist wahr, wenn
> a > b a größer ist als b
>= a >= b a größer gleich b ist
< a < b a kleiner ist als b
<= a <= b a kleiner gleich b ist
== a == b a gleich b ist
!= a != b a ungleich b ist

Logische Operatoren

Operator Besipiel Wirkung
&& a && b prüft b nur wenn a true ist
|| a|| b prüft b nur wenn a false ist
! ! a Negiert a

Beispiele:

In diesem Fall wird gar nicht erst geprüft, ob b < 10 ist, da a nicht größer als 15 ist, können gar nicht beide Werte true ausgeben.

Hier würde b überprüft werden, da a false ist. Da abgefragt wird ob a ODER b true sind.

Dreistelliger Bedingungsoperator

Dieser ?: Operator wird gesplittet benutzt. Im Prinzip ist er eine Kurzschreibweise für eine if-Abfrage. Beispiel:

In diesem Fall wird a ist 5 ausgegeben. Wäre der Wert ein anderer, wäre die Ausgabe a ist nicht 5.

Inkrement, und Dekrementoperatoren

Der Inkrementoperator erhöht den Wert um 1 und der Dekrementoperator verringert den Wert um 1.

Operator Beispiel Wirkung
++ a++; Erhöht den Wert von a um 1
a–; Verringert den Wert von a um 1

Im Prinzip können diese Operatoren, sowohl als Präfix als auch als Suffix verwendet werden. Entscheidend ist dabei der Zeitpunkt zu dem der Operator ausgeführt wird.

Bei der Präfix Notation wird erst der Wert erhöht/verringert und dann der Rest des Ausdrucks ausgewertet.

Bei der Suffix Notation wird erst der Ausdruck ausgewertet und anschließend der Wert erhöht/verringert.

Nach der Auswertung des Programmes wären die Werte wie folgt:

a = 6 da nach der kompletten Abarbeitung des Programmes die Inkrementierung durchgeführt wird.
b = 5 da wie oben erwähnt erst nach der kompletten Abarbeitung der Wert a erhöht wird, wird zum Zeitpunkt der Ausführung dem Wert b noch der Wert a mit 5 zugewiesen.
c = 4 c ist zunächst 5, da es aber dekrementiert der Variable d zugewiesen wird, ist der Wert nach Ablauf 4
d = 4 da der Wert als Präfix notiert ist wird die dekrementierung vorgenommen bevor der Ausdruck ausgewertet wird, also wird d schon der dekrementierte Wert von c also 4 zugeweisen.

Kurzschreibweisen

Da es bei längeren Variablennamen sehr mühsam wird, den Variablennamen doppelt zu schreiben, möchte man mit diesem rechnen, gibt es in Java Kurzschreibweisen.

Einfach wird es so:

Hier wird der arithmetische Operator dem Zuweisungsoperator voran gestellt. Der Variablenname muss nicht noch einmal geschrieben werden.

Abkürzung „Normale“ Schreibweise Beispiel Abkürzung
+= a = a + b a += b
-= a = a – b a -= b
*= a = a * b a *= b
/= a = a / b a /= b
%= a = a % b a %= b
&= a = a & b a &= b
|= a = a | b a |= b
^= a = a ^ b a ^= b
<<= a = a << b a <<= b
>>= a = a >> b a >>= b
>>>= a = a >>> b a >>>= b

Prioritäten

Ähnlich wie in der Mathematik haben auch Operatoren in Java eine gewisse Prioritätenreihenfolge. Bei gleicher Priorität mehrerer Operationen in einem Ausdruck wird von links nach rechts ausgewertet. Zuweisungsoperatoren, sowie alle verkürzten Zuweisungsoperatoren hingegen von rechts nach links.

Ebenfalls analog zur Mathematik, kann mit der richtigen Klammernsetzung die Reihenfolge der Operationen modifiziert werden.

Bezeichnung Operator Priorität
Komponentenzugriff bei Klassen
Komponentenzugriff bei Feldern
Methodenaufruf
.
[  ]
(  )
15
15
15
Unäre Operatoren ++, –, +, -, ~, ! 14
Explizite Typumwandlung (  ) 13
Multiplikative Operatoren
(Multiplikation, Division)
*, /, % 12
Additive Operatoren
(Addition, Subtraktion)
+, – 11
Schiebeoperatoren <<, >>, >>> 10
Vergleichsoperatoren
(Gleichheit, Ungleichheit)
==, != 8
Und
(bitweise / logisch)
& 7
Oder
(bitweise exklusiv)
^ 6
Oder
(bitweise / logisch)
| 5
Und
(logisch)
&& 4
Oder
(logisch)
|| 3
Bedingungsoperator
(verkürzte if Abfrage)
? : 2
Zuweisungsoperatoren =, +=, -=, *=, /= usw. 1

Die Prioritäten höherer Stufen werden vor denen niedrigerer Stufen ausgewertet.

0 Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

fünfzehn − 9 =