javaseiten.de   |   Version 0.6
 

1.1. Grundlagen und Einführung

Typen der Programmiersprache Java lassen sich unterteilen in primitive Typen (z.B. int, double oder boolean) und Referenztypen. Klassendeklarationen definieren neue Referenztypen (Klassentypen). Eine (normale) Klassendeklaration mit leerem Klassenkörper zeigt das anschließende Java-Listing.

Listing 1.1. EmptyClass.java. Deklaration einer Klasse mit leerem Klassenkörper.

/* EmptyClass.java */

class EmptyClass {

}

Eine Klasse wird öfters als Container für Funktionalität bezeichnet. Diese abstrakte Aussage soll in den folgenden Abschnitten nach und nach konkretisiert werden. Der Klassenkörper beginnt mit der geschweiften Klammer "{" und endet mit "}". Innerhalb dieses Klammerpaares können Deklarationen sogenannter Mitglieder der Klasse stehen. Welche Mitglieder (engl. members) der Klassenkörper "beherbergen" kann, soll im Verlauf der folgenden Abschnitte näher erläutert werden. Das Beispiellisting beginnt in der ersten Zeile mit einem Kommentar. Danach schließt sich das Schlüsselwort class an. Der Name der Klasse folgt im Anschluss und lautet im Beispiel EmptyClass. Die minimale Klassendeklaration kann durch Aufruf des Java-Compilers in eine zugehörige Klassendatei EmptyClass.class übersetzt werden.

> javac EmptyClass.java

Es kann nun versucht werden, die Klassendatei EmptyClass.class mit Hilfe das Java-Launchers java ausführen zu lassen.

> java EmptyClass

Dies wird jedoch mit der Fehlermeldung "java.lang.NoSuchMethodError: main" quittiert. Der Aufruf von java versucht das Java-Programm zu starten, indem das Tool die Java-Laufzeitumgebung (Java runtime environment, JRE) startet und die im Beispielaufruf angegebene Klasse EmptyClass einliest. Die Klasse ist innerhalb der Datei EmptyClass.class codiert. Dabei wird in dieser Klasse nach einer main-Methode gesucht, um diese aufzurufen. Da die Beispielklasse keine derartige Methode enthält, erfolgt nach Aufruf des Java-Launchers die entsprechende Fehlermeldung. Im anschließenden Listing wird die Klasse HelloWorld deklariert, die eine main-Methode enthält. Das kurze Programm soll die Zeichenkette "HelloWorld!" auf dem Bildschirm (Eingabeaufforderung, Konsole) ausgeben.

Listing 1.2. HelloWorld.java. Deklaration der Klasse HelloWorld, die eine main-Methode enthält.

/* HelloWorld.java */

public class HelloWorld {

  public static void main(String[] args) {
    System.out.println("Hello World!");    
  }
}

Die Deklaration der Klasse HelloWorld enthält neben class die Schlüsselwörter public, static und void, die vor dem Methodennamen main stehen. Dabei werden public und static als Modifier der Methode bezeichnet und void gibt an, dass die Methode keinen Wert zurückgibt. Zu Methoden einer Klasse wird in Abschnitt 1.3 näher eingegangen. Schließlich enthält die Methode eine Anweisung zur Ausgabe der gewünschten Zeichenkette "HelloWorld!". Der Aufbau dieser Anweisung wird ebenfalls in den folgenden Abschnitten erläutert. Durch Verwendung von javac und java kann die gewünscht Ausgabe auf dem Bildschirm erhalten werden:

> javac HelloWorld.java
> java HelloWorld

HelloWorld!

 

Objekt einer Klasse

Ein Objekt ist eine Instanz einer Klasse oder ein Array. Die Begriffe Objekt und Instanz (einer Klasse) sollen gleichbedeutend verwendet werden. Von der Klasse HelloWorld2, die im Quelltext HelloWorld2.java definiert wird, soll ein Objekt erzeugt werden.

Listing 1.3. HelloWorld2.java

/* HelloWorld2.java */

public class HelloWorld2 {

  public void method1() {
    System.out.println("Hello World!");
  }
}

Die Klasse deklariert ebenfalls eine Methode, die eine Anweisung zur Ausgabe einer Zeichenkette enthält. Da die Klasse aber keine main-Methode beinhaltet, wird eine weitere Klasse benötigt, die zunächst ein Objekt von HelloWorld2 erzeugt und anschließend mit Hilfe dieses Objekts die Methode method1 aufruft, um die Ausgabe "HelloWorld!" auf dem Bildschirm zu erzeugen. Wie dies im Einzelnen aussehen soll, zeigen die nächsten Zeilen. Ein Objekt einer Klasse kann mit Hilfe des new-Operators erzeugt werden. Dazu wird Speicherplatz angefordert bzw. belegt. Falls nicht genügend Speicherplatz für das zu erzeugende Objekt zur Verfügung steht, führt dies zu einer entsprechenden Fehlermeldung: OutOfMemoryError. Um von der Klasse HelloWorld2 ein Objekt zu erzeugen, kann zunächst eine Variable obj vom Klassentyp HelloWorld2 deklariert werden. Der Objektvariablen obj kann nun unter Verwendung von new ein entsprechender Referenzwert (kurz: Referenz) zugeordnet werden.

HelloWorld2 obj;
obj = new HelloWorld2();

oder kürzer:

HelloWorld2 obj = new HelloWorld2();

Im Beispiel folgt nach dem Schlüsselwort new die Angabe des Klassentyps HelloWorld2 gefolgt von einem leerem Klammerpaar. Innerhalb dieser runden Klammern können Argumente angegeben werden, die einem sogenannten Konstruktor übergeben werden können (siehe dazu Abschnitt 1.4). Die durch obj gespeicherte Referenz ist ein Zeiger auf dieses Objekt. Es gibt auch eine spezielle Referenz: Die null-Referenz, welche auf gar kein Objekt verweist. Sie ist der Default-Wert für alle Referenztypen. Der folgende kurze Java-Quelltext erzeugt innerhalb der main-Methode ein Objekt der Klasse HelloWorld2. Anschließend wird die Methode mit dem Namen method1, die ein Member dieser Klasse ist, aufgerufen. Dies geschieht, indem nach obj ein Punkt notiert wird, dem sich der Name der aufzurufenden Methode anschließt (im Beispiel folgt danach ein leeres Klammerpaar).

Listing 1.4. Test.java. Erzeugung eines Objekts der Klasse HelloWorld2.

/* Test.java */

public class Test {
  
  public static void main(String[] args) {
    
    HelloWorld2 obj;
    obj = new HelloWorld2();
    obj.method1();
  }
}

Nach der Übersetzung der beiden Dateien HelloWorld2.java und Test.java in zugehörige Klassendateien (befinden sich im selben Verzeichnis), kann mit der Anweisung

> java Test

die Bildschirmausgabe "HelloWorld!" erhalten werden.

 

 

 

Diese Seite nutzt Google-Dienste - siehe dazu Datenschutz.

Copyright © 2006, 2007 Harald Roeder