java.sun.com

   JAVA - Wie arbeitet man mit Klassen, Methoden usw.


 Startseite
 Grundlagen

 Indexverzeichnis


JAVA - Wie arbeitet man mit Klassen, Methoden usw.

Ein großen Problem vor allem für Java-Neulinge ist, in den ganzen Klassen durchzublicken. Wie kann ich jetzt was benutzen? Warum bringt mir das JDK eine Fehlermeldung? usw. Einige Anhaltspunkte gibt es auf dieser Seite.

Klasse
Constructor
Methode
Instanz- oder Indexvariable
Methoden aus der Basisklasse
Package

  Seitenende


Klasse

Eine Klasse besteht meistens aus einem oder mehreren Constructors, den dazugehörigen Methoden und manchmal aus einigen Indexvariablen. Eine genaue Beschreibung der einzelnen Klassen gibts in der Dokumentation des JDK, einige habe ich in meiner Dokumentation auch in deutsch.
Im JDK 1.2 gibt es derzeit 1.524 verschiedene Klassen und Interfaces. Alle Klassen zu kennen ist fast unmöglich.

Die Klassen sind in den verschiedenen Packages untergebracht. Die wichtigsten, d.h. am meisten gebrauchten, Klassen stehen in den Packages java.applet, java.awt, java.awt.event und java.lang. Sie beschränken sich immerhin auf "nur" 197 Klassen und Interfaces.


  Seitenanfang


Constructor

Die Klassen kann man benutzen, indem man Objekte in der eigenen Klasse erzeugt. Wie so ein Objekt erzeugt werden muß, ist im Constructor beschrieben. Wenn es mehrere dieser Constructors gibt, habe ich auch mehrere Möglichkeiten, so ein Objekt zu erstellen. In der Klammer des Constructors stehen wiederum Objekte bzw. Variablen, die vom JDK benötigt werden, um das Objekt richtig erzeugen zu können. Sind hier mehrere Angaben nötig, werden diese durch ein Komma getrennt.


  Seitenanfang


Methode

Bei den Methoden wird alles schon etwas schwieriger.

Schauen wir es uns lieber mal an einem Beispiel an: public void setLabel(String label) aus der Klasse java.awt.Button
Eine Methode ist meistens aus public Rückgabewert Methodenname(benötigte Angaben) aufgebaut.

Eine Methode wird immer mit dem entsprechenden Objekt angewandt:
Button b1 = new Button("Hallo");
b1.setLabel("neuer Text");

Arten von Methoden:

  1. Rückgabewert = void
    void bedeutet, daß nichts zurückgegeben wird. In diesen Fällen wird immer irgendetwas eingestell, neu zugewiesen oder definiert. So z.B. die Methode setLabel. Hier kann nur etwas neu zugewiesen werden (nämlich die Button-Beschriftung) aber es kann nichts ab- bzw. ausgelesen werden. Deshalb steht so eine Definition immer ohne "=" oder irgendeinen Vergleich: b1.setLabel("neuer Text");
     
  2. Rückgabewert = Objekt/Variable
    Beispiel: public String getLabel() aus der Klasse java.awt.Button. Hier ist der Rückgabewert String. Diese Methoden müssen mit einer Zuweisung oder einem Vergleich aufgerufen werden:
    Button b1 = new Button("Hallo");
    String str;
    str = b1.getLabel();

    oder
    Button b1 = new Button("Hallo");
    String str = "Hallo";
    if (str.equals(b1.getLabel()) ...;

    Dabei muß die Variable bzw. das Objekt, das den Wert zugewiesen bekommt bzw. das mit dem Wert verglichen werden soll (in unserem Fall der String str) immer der gleiche Variablen- oder Objekttyp sein, wie der Rückgabewert. Einem String kann nur ein String oder einem Button wiederum nur ein Button zugewiesen werden. Abhilfen dafür können nur bestimmte Methoden schaffen, die solche Typen umwandeln können.
     

  3. Methoden, die ohne ein Objekt aufgerufen werden können
    Eine Klasse kann man von einer anderen ableiten. Das wahrscheinlich gängigste Beispiel ist ein Applet. Es wird mit der Anweisung extends Applet von der Klasse java.applet.Applet abgeleitet. Die Klasse java.applet.Applet wurde wiederum von der Klasse java.awt.Panel abgeleitet, diese von der Klasse java.awt.Container, diese von der Klasse java.awt.Component und diese von der Klasse java.lang.Object. Letztendlich beinhaltet meine Klasse alle Methoden, die in all diesen Klassen enthalten sind. Da mein Applet die Methoden enthält, kann ich sie auch einfach aufrufen, z.B. setBackground(Color col);. Diese Methode steht in der Klasse java.awt.Component.
    Fazit: Ich kann alle Methoden ohne Objektzuweisung aufrufen, sofern sie sich in meiner Klasse befinden. Dies gilt für Methoden, die ich durch Vererbung bekommen habe, sowie für Methoden, die ich selbst geschrieben habe.

  Seitenanfang


Instanz- oder Indexvariable

Indexvariablen werden immer mit dem Klassennamen aufgerufen, z.B. Color.blue aus der Klasse java.awt.Color, Font.BOLD aus der Klasse java.awt.Font usw.


  Seitenanfang


Methoden aus der Basisklasse

Methoden aus der Basisklasse oder Klassen, die im "Familienstammbaum" der eigenen Klasse noch weiter zurück liegen, können in der eigenen Klasse ohne die Zuordnung eines Objktes verwendet werden.
z.B. setBackground(Color col);

  Seitenanfang


Package

Die Einbindung von Packages erfolgt normalerweise über die import-Definition. Sie steht immer noch vor der Klassen-Deklaration (public class ... extends ...).
Außerdem können die Objekte mit dem entsprechenden Package angegeben werden:
java.awt.Button b1 = new java.awt.Button("Hallo");
java.lang.String str;

 
weiter:
zurück:
  Verzweigungen
  Objektorientiert
  Seitenanfang © 1999-2001  Brit Schröter