home  |  suche  |  kontakt/johner  |  institut 
studierende  |  tech-docs  |  mindmailer 

Modifier

  • public: Methoden und Attribute überall sichtbar
  • private: Methoden und Attribute nur innerhalb der Klasse sichtbar
  • protected: Methoden und Attribute innerhalb des Packages und erbenden Klassen sichtbar
  • final: Methoden können nicht überschrieben, Attribute nach Initialisierung nicht mehr geändert werden
  • abstract: Abstrakte Methoden können nur auf abstrakten Klassen definiert werden, abstrakte Klassen kann man nicht Instanzieren.
  • static: Static Methoden können ohne instanzierte Klasse aufgerufen werden. Static Attribute haben auf allen Instanzen den gleichen Wert.
package progstruk.modifier;

public class Testauto {
  public static int count = 0;
  public Testauto()
  {
    ++count;
  }
}
package progstruk.modifier;

public class StartTestauto {
  public static void main(String[] args) {
    Testauto auto1;
    Testauto auto2 = new Testauto();
    // Ohne Instanz kann auf die static Variable count von Testauto
    // zugegriffen werden
    System.out.println("Anzahl Testautos: " + Testauto.count);
  }
  // Die Ausgabe lautet: "Anzahl Testautos: 1", mit auto2 wurde eine Instanz
  // der Klasse erzeugt, auto1 ist dagegen zum Zeitpunkt der Ausgabe noch
  // nicht initialisiert.
}

Es gibt zusätzlich die Möglichkeit von static imports. Damit kann eine statische Methode aufgerufen werden ohne den Klassennamen voranzustellen.

Im folgenden Beispiel müsste ohne den static import die Methode pow(int, int) über die Klasse Math aufgerufen werden, also Math.pow(int, int), das gleiche gilt für die Methode abs(int).

package progstruk.modifier;
import static java.lang.Math.*;
public class Start {

  public static void main(String[] args) {
    System.out.println(abs(3));
    pow(2,7);
  }
}