Vorlesung Informatik 1 - Teil A: Java Kurs

2.1 Klassen- und Instanz-Member

Variablen und Methoden (Oberbegriff: Member) können entweder zur Klasse oder zum Objekt gehören:

  • Klassenvariablen und Klassenmethoden sind static deklariert:
          public static void main(...){...
          private static int anzahlObjekte;


    Im Gegensatz zu Instanzvariablen und Methoden sind sie unabhängig von Objekten. Sie werden im Speicher angelegt, sobald die Klasse geladen wird, in der Regel sobald die Anwendung gestartet wird.
    Man Referenziert Klassenmember über denKlasennamen:
           JOptionPane.showMessageDialog();             // ruft eine Klassenmethode
           JFrame.EXIT_ON_CLOSE   oder Color.RED    // Referenziert Klassenvariablen
           double wurzel = Math.sqrt(10.0);                // ruft eine Klassenmethode
                               
  • Instanzvariablen und Instanzmethoden erkennt man daran, dass das Schüsselwort static fehlt. Sie gehören immer zu einem Objekt. Instanzvariablen werden erst im Speicher angelegt, wenn ein Objekt mit new erzeugt wird. Sie werden immer über ein Objekt referenziert (für ein Objekt gerufen)
  • Instanzmethoden können sowohl auf Instanz-Member als auch auf Klassen-Member zugreifen.
  • Klassenmethoden können nur auf Klassen-Member zugreifen.
    Deshalb ist die Methode starteAnwendung in StandardAnwendung statisch, weil sie von main gerufen wird.
  • In Klassenmethoden macht das Schlüsselwort this keinen Sinn!

Beispiel:

public class Birne{
      private static int anzahlBirnen;    // Klassenvariable
      private int gewicht;                    // Instanzvariable

      public Birne(int gewicht){          // Konstruktoren sind Instanzmethoden, this ist erlaubt
            this.gewicht = gewicht;
            anzahlBirnen = anzahlBirnen+1;
      }

      public static int getAnzahlBirnen(){  // Klassenmethode
             return anzahlBirnen;
      }


main ist eine Klassenmethode, sonst müsste das Betriebssystem erst ein Objekt erzeugen, um die App zu starten.


Weiterführende Links

Kapitel zu Klassen-Membern in Java ist auch eine Insel

Lehrvideo  (YouTube)