Objektorientierung in Java: Frage wegen Objekte?

2 Antworten

Ja das ist soweit richtig.

Du solltest aber beachten, dass out eine Klassenvariable (static) von System ist und das gespeicherte Objekt ist eine Instanz der Klasse PrintStream.

Verstehe ich leider nicht. :/ Könntest du mir bitte ein Beispiel-Quelltext zeigen? z.B mit System.out.println();

0
@Smartnothard

Grob implementiert sieht System.out.println so aus:

class System {
  public final static PrintStream out = new PrintStream();
}

class PrintStream {
  public void println() {
    // print something ...
  }
}

Da die Variable out statisch ist (= Klassenattribut), braucht es keine Instanz von System, um auf dieses Feld zuzugreifen.

Einmal angenommen, das Schlüsselwort static würde wegfallen und man könnte System-Objekte anlegen. Dann würde der Aufruf von println stets so aussehen:

System system = new System();
system.out.println("Hello world");

Man müsste sich ein Objekt von System anlegen, um auf das Attribut out (= Instanzattribut) zugreifen zu können.

1
  1. System ist eine Klasse
  2. out ist eine Variable
  3. println() ist eine Methode
Woher ich das weiß:Hobby – Ich beschäftige mich in meiner Freizeit gerne mit PCs.

Was möchtest Du wissen?