Titel | Inhalt | Suchen | Index | DOC | Handbuch der Java-Programmierung, 3. Auflage
<< | < | > | >> | API | Kapitel 7 - OOP I: Grundlagen

## 7.2 Klassen und Objekte in Java

- 7.2 Klassen und Objekte in Java
  - 7.2.1 Klassen
  - 7.2.2 Objekte

### 7.2.1 Klassen

Eine Klassendefinition in Java wird durch das Schlüsselwort `class` eingeleitet. Anschließend folgt innerhalb von geschweiften Klammern eine beliebige Anzahl an Variablen- und Methodendefinitionen. Das folgende Listing ist ein Beispiel für eine einfache Klassendefinition:

    001 /* Auto.java */
    002
    003 public class Auto
    004 {
    005   public String name;
    006   public int    erstzulassung;
    007   public int    leistung;
    008 }
| Auto.java

Listing 7.1: Eine einfache Klassendefinition

Diese Klasse enthält keine Methoden, sondern lediglich die Variablen `name`, `erstzulassung` und `leistung`. Eine solche methodenlose Klassendefinition entspricht dem Konzept des Verbunddatentyps aus C oder PASCAL (`struct` bzw. `record`). Die innerhalb einer Klasse definierten Variablen werden wir im folgenden (analog zu C++) meist als Membervariablen bezeichnen. Die in Abschnitt 7.1.3 erwähnten Begriffe Instanzvariablen oder Instanzmerkmal sind aber ebenso gültig.

### 7.2.2 Objekte

Um von einer Klasse ein Objekt anzulegen, muß eine Variable vom Typ der Klasse deklariert und ihr mit Hilfe des `new`-Operators ein neu erzeugtes Objekt zugewiesen werden:

    001 Auto meinKombi;
    002 meinKombi = new Auto();

Listing 7.2: Erzeugen eines Objekts mit new

Die erste Anweisung ist eine normale Variablendeklaration, wie sie aus Kapitel 4 bekannt ist. Anstelle eines primitiven Typs wird hier der Typname einer zuvor definierten Klasse verwendet. Im Unterschied zu primitiven Datentypen wird die Objektvariable `meinKombi` als Referenz gespeichert. Die zweite Anweisung generiert mit Hilfe des `new`-Operators eine neue Instanz der Klasse `Auto` und weist sie der Variablen `meinKombi` zu.

In Java wird jede selbstdefinierte Klasse mit Hilfe des `new`-Operators instanziert. Mit Ausnahme von Strings und Arrays, bei denen der Compiler auch Literale zur Objekterzeugung zur Verfügung stellt, gilt dies auch für alle vordefinierten Klassen der Java-Klassenbibliothek.

|  |  |  | Wie bei primitiven Variablen lassen sich beide Anweisungen auch kombinieren. Das nachfolgende Beispiel deklariert und initialisiert die Variable `meinKombi`: |  |
Tip

    001 Auto meinKombi = new Auto();

Listing 7.3: Kombinierte Deklaration und Initialisierung einer Objektvariablen

Nach der Initialisierung haben alle Variablen des Objekts zunächst Standardwerte. Referenztypen haben den Standardwert `null`, die Standardwerte der primitiven Typen können Tabelle 4.1 entnommen werden. Der Zugriff auf sie erfolgt mit Hilfe der Punktnotation `Objekt.Variable`. Um unser `Auto`-Objekt in einen 250 PS starken Mercedes 600 des Baujahrs 1972 zu verwandeln, müßten folgende Anweisungen ausgeführt werden:

    001 meinKombi.name = "Mercedes 600";
    002 meinKombi.erstzulassung = 1972;
    003 meinKombi.leistung = 250;

Listing 7.4: Zuweisen von Werten an die Variablen eines Objekts

Ebenso wie der schreibende erfolgt auch der lesende Zugriff mit Hilfe der Punktnotation. Die Ausgabe des aktuellen Objektes auf dem Bildschirm könnte also mit den folgenden Anweisungen erledigt werden:

    001 System.out.println("Name........: "+meinKombi.name);
    002 System.out.println("Zugelassen..: "+meinKombi.erstzulassung);
    003 System.out.println("Leistung....: "+meinKombi.leistung);

Listing 7.5: Lesender Zugriff auf die Variablen eines Objekts

Titel | Inhalt | Suchen | Index | DOC | Handbuch der Java-Programmierung, 3. Auflage, Addison Wesley, Version 3.0
<< | < | > | >> | API | © 1998-2002 Guido Krüger, http://www.javabuch.de