Java™ und Objektorientierung | |
Java/OO | Druckversion |
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. |