Jave Grundeinstellungen

Dieses Dokument behandelt die "default-" oder Standarderweiterungen, die der "JAVA-Compiler" (javac) in den JAVA-Sourcecode (*.java) vor dem Übersetzen implizit einfügt.


Einstellung Beschreibung
import java.lang.* wird immer importiert.
extends Jede Klasse, die nicht explizit von einer anderen Klasse (mit extends) abgeleitet wird, wird von der Klasse java.lang.Object abgeleitet.
M. a. W.: Jedes Objekt ist ein java.lang.Object.
"default-Konstruktor" Wenn kein eigener Konstruktor erzeugt wird, wird ein argumentloser Konstruktor eingefügt, der nur die Funktion hat, den Konstruktor der Superklasse aufzurufen:
public XXX()
  {
    super();
  }
Es ist guter Programmierstil, beim Schreiben eines eigenen Konstruktors immer den parameterlosen auch zu erzeugen. Denn der default-Konstruktor wird nicht mehr eingefügt, wenn ein eigener Konstruktor existiert!
Aufruf des Superkonstruktors Jedem Konstruktor, der nicht selbst (mit this oder super) einen weiteren Konstruktor aufruft, wird dieser Aufruf implizit eingefügt: super();.
this Alle Verwendungen von Objektmethoden und dynamischen Attributen, die nicht das Schlüsselwort this davor enthalten, erhalten dieses implizit. Dies gilt nicht für statische Methoden oder Variablen (static).
"+"-Operator Falls Stringobjekte mit "+" verkettet werden, so wird das mit der Methode append() aus StringBuffer durchgeführt. Das gilt auch bei der Zusammenfügung von Stringobjekten mit primitiven Datentypen. Der Compilerhersteller ist frei, ob er tatsächlich StringBuffer.append() verwendet; meist wird es jedoch so gelöst.

Geschriebener Code Code von javac erzeugt
class A
{
  int i;






}
import java.lang.*;
class A extends java.lang.Object
{
  int i;

  public A()
  {
    super();
    return;
  }

}
class B extends A
{
  public B(int j)
  {

    i = j;
  }

  void out()
  {
    System.out.println
      ("i = " + i);
  }

}


public interface Inter {
  void doSomething();
}
import java.lang.*;
class B extends A
{
  public B(int j)
  {
    super();
    this.i = j;
    return;
  }

  void out()
  {
    System.out.println
      ((new StringBuffer("i = "))
      .append(this.i));
      return;
  }

}

public interface Inter {
  public abstract void doSomething();
}

Defaultwerte von Variablen

Neben den syntaktischen Defaultwerten hat JAVA auch für jeden Datentyp einen Defaultwert: Siehe Variable.