Java Grundlagen

Programmstrukturen, -anweisungen

  • Klassen
    Jede Klasse wird mit dem Schlüsselwort class eingeleitet. Unmittelbar davor wird die Zugriffsberechtigung (public, private, protected) externer Objekte auf die Klasse geregelt.
    Der Klassenname legt den Dateinamen fest, unter dem die Klasse abzuspeichern ist; er beginnt immer mit einem Großbuchstaben.

    public class KlassenName {
    Deklarationen der Instanzvariablen
    ...
    Definition von Methoden
    ...
    }


  • Methoden
    Es gibt zwei Arten von Methoden; zum einen solche, die eine Aktion ohne Rückgabewert (Schlüsselwort: void) ausführen,

    public void methodenName(Parameterliste) {
    Anweisungen;
    ...
    }

    zum anderen diejenigen, welche mittels return-Anweisung unter ihrem Namen, z.B. sin(x), einen Wert an das übergeordnete, aufrufende Programm zurückgeben. Der Datentyp des Rückgabewertes wird in der Deklaration der Methode vorgegeben.

    public rueckgabeTyp methodenName(Parameterliste) {
    Anweisungen;
    ...
    return Ausdruck;
    }


Methoden sind Bestandteile von Klassen und werden innerhalb des entsprechenden Klassenkörpers definiert. Man erkennt sie am runden Klammernpaar ( ) welches dem Namen der Methode folgt; letzterer beginnt standardmäßig mit einem kleinen Buchstaben. Die Parameterliste innerhalb der Klammern kann auch leer sein.


  • Blöcke
    Deklarationen und/oder Anweisungen werden innerhalb geschweifter Klammern {...} in Blöcken zusammengefasst - u.a. im Klassen- bzw. Methodenkörper.
    Einrückungen im Quelltext verdeutlichen mögliche, strukturierende Hierarchien unterschiedlicher Blöcke.
  • Typisierung von Variablen
    Java fordert vorab die Deklaration von Variablen; sie werden wie folgt deklariert:

    Typ variable_1, variable_2, ...;

    Der Compiler stellt damit sicher, dass Werte und Variablen eines Datentyps nur in typgemäßer Weise verwendet werden und keine Irritationen durch fehlerhaft geschriebene Namen auftreten.
    Typ-Deklarationen sollten jeweils am Beginn von Klassen-, bzw. Methodenkörpern stehen; Variablen gleichen Typs innerhalb einer Liste werden durch Kommas getrennt.
TypWertSpeicherplatzWertebereich
booleantrue oder false1 Bitentfällt
chareinzelnes Zeichen
(Unicode)
2 Bytealle Unicode-Zeichen
byteganzzahlig1 Byte-128 bis 127
shortganzzahlig2 Byte-215 bis 215-1
intganzzahlig4 Byte-231 bis 231-1
longganzzahlig8 Byte-263 bis 263-1
floatGleitkommazahl4 Byte±1.4e-45 bis ±3.4e+38
Genauigkeit: 7 signifikante Stellen
doubleGleitkommazahl8 Byte±4.94e-324 bis ±1.79e+308
Genauigkeit: 15 signifikante Stellen
  1. Referenzvariablen
    Als objektorientierte Sprache ermöglicht Java auch die Definitionen von Objekttypen. Objekte werden damit als Abkömmlinge der Klasse gekennzeichnet, aus denen sie abgeleitet sind. Dies geschieht mit der Deklaration:

    Klasse referenz_Variable;

    Referenzvariablen speichern eine Referenz (Adresse, Datenstruktur) auf Objekte, die aus Klassen erzeugt werden. Objekte werden im Programm über ihre Referenzvariablen aufgerufen.
    Das Schlüsselwort new erzeugt Objekte (Instanzen) aus Klassen. Konstruktoren, spezielle Methoden einer Klasse, generieren dabei Objekte dieser Klasse.
    Die Verknüpfung von Objekt und Referenzvariable erfolgt über eine Ergibtanweisung, z.B.:

    referenz_Variable = new Klasse(Parameterliste);

  • Ergibtanweisungen
    Das Ergebnis des Ausdrucks rechts vom Gleichheitszeichen wird der Variablen auf der linken Seite zugewiesen. Die Typen von Variable und Resultat müssen zueinander kompatibel sein.

    variable = Ausdruck;

  • arithmetische Operatoren
    Eine spezielle Kurzschreibweise kombiniert den Zuweisungsoperator (=) mit einem der Operatoren
    (Addition)
    (Subtraktion)
    (Multiplikation)
    (Division)
    (Modulo: Rest der Division)
    
    
    in der Form:

    variable Operator = Ausdruck;
    varZ * = varX+ varY;

    was identisch ist zur ausführlichen Schreibweise

    variable = variable Operator Ausdruck;
    varZ = varZ * (varX + varY);

    d. h., der bisherige Wert der Variablen links vom Zuweisungsoperator wird über den arithmetischen Operator mit dem Wert des Ausdrucks rechts vom Zuweisungsoperator verknüpft und das Resultat als neuer Wert der Variablen gespeichert.
    Beachten Sie:
  • Multiplikation, Division geht vor Addition, Subtraktion.
  • Klammerausdrücke haben oberste Priorität - Teilausdrücke in Klammern werden vorrangig ausgewertet.
  • Inkrement, Dekrement
    Ohne Zuweisungsoperator kommen folgende Befehle aus:
     
    variable++Inkrement, erhöht den Wert der Variablen um 1
    variable- -Dekrement, verringert den Wert der Variablen um 1

 

  • Vergleichsoperationen
    Relationale Operatoren vergleichen Ausdrücke miteinander und geben in diesem Kontext eine logische Bewertung (true, false) zurück.


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


  • Boolesche Algebra
    Operatoren variieren oder kombinieren Variablen oder Ausdrücke vom Typ boolean; das Ergebnis ist ein logischer Wert (true, false).


!NEGATION
&&UND
||ODER
^EXKLUSIV ODER


No pain, no gain

byte noPain; // ohne Fleiss
float mark; // Note, Zensur
boolean noGain = noPain != 0 || mark > 4.; // kein Preis