Die Java Kompilationseinheit

Dieses Dokument gibt exemplarisch ein Beispiel einer Javaklasse. Es werden die wichtigsten Syntaxelemente der Kompilationseinheit angegeben. Das Beispiel ist bewusst einfach und deshalb unvollständig.


// Beispiel: Kugel
Java kennt zwei Arten von Kommentaren (// und /* ... */). Diese dürfen an beliebiger Stelle im Sourcecode stehen. Der Compiler sieht an ihrer Stelle einen "White-Space"; d. h. Kommentare werden wie Leerzeichen behandelt.


package com.gressly.phi.math;
Jede Klasse kann maximal eine Paketanweisung beinhalten. Die Paketdeklaration muss an erster Stelle in der Kompilationseinheit vorkommen. Die Klasse muss sich dann im genannten Unterverzeichnis im aktuellen Klassenpfad befinden. Das funktioniert auch in *.jar Files.


import java.awt.Color;
import java.util.*;
Jede Klasse kann (zwischen Paket-Deklaration und Typendefinition) mehrere Importanweisungen enthalten. Dabei kann in eine Klasse, aber auch ein ganzes Verzeichnis importiert werden. Achtung Die Unterverzeichnisse werden nicht rekursiv mitimportiert.
Bem.: Das Paket java.lang.* wird immer automatisch importiert.


public class Kugel {
Eine Kompilationseinheit besteht aus einer oder aus mehreren Klassen. Die Hauptklasse muss gleich heißen wie die Klasse und darf als einzige public deklariert sein (ist sie nicht public, so ist sie nur innerhalb des Paketes sichtbar).
Innerhalb von Klassen stehen Attribute (Felder), Konstruktoren, Methoden, statische Felder und statische und dynamische Initialisierer und "innere Klassen". Auf statische Felder, Initialisierer und innere Klassen verzichte ich in diesem Beispiel.


  int x, y, z;
  float r;
  Color c;
Attribute können primitive Datentypen, aber auch Objektdatentypen verwenden. Siehe auch Variable.


  public Kugel() {
    //implicit super();
  }
Jede Klasse kann mehrere Konstruktoren beinhalten. Typischerweise ist einer dabei, der keine Parameter verwendet. Siehe auch Java Standardwerte (Defaults). Der Konstruktor hat fast die gleiche Syntax wie die Methoden. Nur haben Konstruktoren keine Rückgabewerte (auch nicht void).


  public Kugel(int x,
  int y, int z,
  float radius) {
Hier ein Beispielkonstruktor mit Parametern.
    this.x = x;
    this.y = y;
    this.z = z;
    r = radius;
Innerhalb von Konstruktoren stehen Anweisungen.
  }
(}) Ende des zweiten Konstruktors.


  public float area() {
Diese Methode berechnet die Oberfläche der Kugel.
    float ar;
    ar = Math.PI * 4
         * r * r * r
         / 3;
    return ar;
Innerhalb von Methoden stehen Anweisungen. Die return Anweisung beendet die Methode augenblicklich und übergibt die Kontrolle zurück ans aufrufende Programm. return steht meist als letzte Zeile in einer Methode.
  }
(}) Ende der Methode area().


}
(}) Ende der Klasse. Weitere Klassen (nicht public) könnten in dieser Kompilationseinheit folgen.