zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Ja. Eine Klassendefinition kann ihre eigenen Variablen (Zustand) und kann ihre eigenen Methoden (Verhalten) haben.

Statische Methoden (Klassenmethoden)

Die Methoden, die Merkmal der Klasse sind, werden statische Methoden genannt. (Die bessere Bezeichnung ist Klassenmethoden). Eine Klassenmethode ist ein Merkmal der Klasse, nicht der Objekte, die auf ihrer Basis erzeugt werden.

Wichtig: Ein Programm kann eine Klassenmethode ausführen, ohne zuerst ein Objekt zu erzeugen! Alle anderen Methoden (die, welche nicht static sind) müssen ein Teil eines Objektes sein. Ein Objekt muss existieren, bevor sie ausgeführt werden können.

Hier ist noch einmal das Beispielprogramm:


// Die Datei StringTester.java
//
class StringTester
{

  public static void main ( String[] args )
  {
    String str;             // str ist eine Variable, die ein Objekt bezeichnet,
                            // aber das Objekt existiert noch nicht.
    int  laenge;            // laenge ist eine primitive Variable vom Typ int

    str = new String("Zufaellige Notizen");  // ein Objekt vom Typ String erzeugen

    laenge  = str.length();  // Aufruf der Methode length() des Objekts str

    System.out.println("Der String ist " + laenge + " Zeichen lang");
  }
}

Die Applikation ist vergleichbar mit vielen, die wir bis jetzt gesehen haben. Aber jetzt können wir mehr Details verstehen, von dem was vor sich geht. Angenommen, dass eine Datei mit dem Namen StringTester.java den oben stehenden Quelltext enthält.

Denkt an die Idee der objektorientierten Programmierung: Eine Applikation besteht aus einer Sammlung kooperativer Software-Objekte, deren Methoden in einer bestimmten Reihenfolge ausgeführt werden, um etwas Nützliches zu tun. Die oben genannten Schritte beschreiben wie die Sammlung der Objekte zum Laufen gebracht wird. (In diesem Fall wurde nur ein Objekt erzeugt.)

FRAGE 13:

Angenommen, wir erstellen eine Datei, die eine Klassendefinition enthält, aber die Klasse enthält keine main() Methode. Können die Methoden dieser Klasse jemals ausgeführt werden?