Archiv der Kategorie Grundlagen

Jeder Weg beginnt mit einem Schritt – Increment und Decrement

Kein anderer Operator ist so einfach und so verwirrend wie das Increment und Decrement in Java.

Warum? Nunja einfach ist es, weil es einem numerischen Wert genau um 1 erhöht (Increment) oder verringert (Decrement). Verwirrend jedoch das je nachdem wo der Operator steht, die Ausführung im Zusammenhang mit anderen Operationen verschieden ist.

Die Benutzung ist recht einfach, wir haben eine Variable vom Typ int und mit diesem rechnen wir mit ++i oder i++ genau 1 drauf. Analog ist das mit dem Decrement also – -i oder i- –

Jedoch nun kommt der Tricky-Teil an der ganzen Geschichte. Wann genau rechnet er den Wert hinzu oder zieht ihn ab?

Wird die ++i /- -i verwendet geschieht die Berechnung gleich, also bevor die Variable weiter vewendet wird. Jedoch bei der Schreibweise i++/i- – erfolgt die Berechnung erst nach der Verwendung der Variable.

Beispiel

int x=5;
System.out.println(x++); //Output von x ist 5
System.out.println(x); //Output von x ist 6

int y=5;
System.out.println(++y); //Output von y ist 6
System.out.println(y);

Ansonsten sind Increment und Decrement die einfachere Möglichkeit um einer genau einen Wert rauszurechnen oder abzuziehen.

Alles ist gleich? – Der Zuweisungsoperator in Java

Im Grunde besitzt Java nicht nur ein einzigen Zuweisungsoperator sondern sogesehen gleich 12.  Davon ist der „normalste“ das Gleichheitszeichen, die restlichen 11 entstehen aus der Kombination mit eben dem ganz normalen.

Schauen wir uns das einmal genauer an. Was soll uns das Gleichheitszeichen und des Kombinationen draus eigentlich sagen? Eigentlich ja nur das was auf der linken Seite genau das gleiche ist wie auf der rechten Seiten.

Wenn wir jetzt auf von der Programmierung in die Mathematik abschweifen, dann kommen uns sofort normale Gleichungen in den Sinn. Denn dort bedeutet 3=2+1 auch nur das die linke Seite das Gleiche wie auf der rechten Seite ist.

In Java kommt dann noch dazu, das man „Gleichungen“ die Rechenoperationen auf die Variable selbst durchführen abgekürzt werden kann und auch noch  zum Vorteil des Programmierers. Warum?

Nunja ersteinmal schreibt man weniger, was schon einmal die Gefahr verringert Schreibfehler einzubauen. Desweiteren brauch man nicht ständig umcasten. Warum umcasten?  Was passiert wenn man verschiedene Datentypen miteinander verrechnen will?

Sind die Datentypen unterschiedlich, so wird intern der kleinere Datentyp in den Größeren überführt, d.h will man int und long verrechnen so wird aus dem int intern  ein long. Ist der Ergebnistyp allerdings vom Typ int so muss expliziert das Ergebnis wieder auf ein int gecastet werden. Nutzen wir nun den kombinierten Zuweisungsoperator so entfällt das casten, denn so wird implizit auf den Datentyp des Ergebnistyps vom Compiler  selbst gecastet.

Hier noch eine kleine Zusammenstellung der 12 Zuweisungsoperatoren in Java

Zuweisungsoperatoren in Java
= , += , -= , *= , /= , %= , &= , ^= , |= ,<<= , >>= , >>>=

Tags: , ,

primitiv oder doch komplex?

Wenn in Java die Rede von Primitiven ist, so spricht man von den normalen Datentypen. Java hat genau 8 von ihnen.

Allein 4 davon werden zur Speicherung von Zahlen verwendet. Es sind die Datentypen byte, short, int und long. Alle speichern ganzzalige Werte, allerdings in verschiedener Größe.

DatentypSpeicherWertebereich
byte8 bit-128 bis 127
short16 bit-32768 bis 32767
int32 bit-2147483648 bis 2147483647
long64 bit-9223372036854775808 bis
9223372036854775807

Nicht immer reicht es aus nur mit ganzen Zahlen zu arbeiten.  Spätestens wenn man eine Zahl mit einem Komma verwenden will, wird man feststellen das man das mit den 4 oben genannten Datentypen nicht mehr auskommt. Java bietet dazu zwei primitive Datentypen nämlich die Dateitypen float und double.  Wenn man diese benutzt muss man bei der Vewendung beachten, dass man die amerikanische Schreibweise benutzt und statt dem Komma ein Punkt verwendet.

DatentypSpeicherWertebereich
float32 bit+/-3.40282347E + 38F
double64 bit+/-1.79769313486231570E + 308

Ein einziges Zeichen egal ob Buchstabe, Zahl oder Sonderzeichen wird im Datentyp char gespeichert, dabei ist es egal ob man den entsprechenden Dezimalwert des Ascii-Codes , den Unicode oder das entsprechende Zeichenliteral angibt. So speichern die folgenden drei Anweisungen immer das gleiche nämlich A:

char a = 65;
char b =’A‘;
char c = ‚\u0041‘;

DatentypSpeicherWertebereich
char16 bitalle 16 bit Unicodezeichen, nur ein einziges Zeichen (Zahlen, Buchstaben und Sonderzeichen)

Zu guterletzt haben wir dann noch einen Datentyp, der uns sagt, ob etwas stimmt oder nicht, der Datentyp boolean. Er beinhaltet zwei Zustände die er einnehmen kann: true oder false.

DatentypSpeicherWertebereich
boolean1 bittrue oder false

Alle haben eines gemeinsam, sie können ohne Probleme in einem Quellcode definiert werden und benutzt.

Neben den primitiven Datentypen gibt es in Jave noch die komplexen Datentypen. Sie unterscheiden sich zu den primitiven DAtentypen darin, das für die Benutzung ein Objekt angelegt werden muss um sie nutzen zu können.

Bekannte schon in Java vorhandene Datentypen sind zum Beispiel:

  • String
  • Array

oder auch alle selbstgeschriebene Enumerationen und eigene Klassen

Tags: , , , , , , , , , , , ,

Einführung in die Programmierung

Eigentlich könnte man an dieser Stelle zu den einschlägigen Java – Seiten schicken um nichts vorhandenes noch einmal schreiben zu müssen, von daher nur die Kurzform.

In Java ist alles immer schon gekapselt und vor allem in Klassen gepackt. Erstellt mach sich in einer Entwicklungsumgebung wie zum Beispiel Netbeans ein neues Projekt wird das Hauptprojekt sofort mit einem Package vergeben und unsere Main – Funktion in eine entsprechende Klasse verpackt.

Tags: , ,