Objektorientierung in Java: Frage wegen Objekte?
Ich möchte die Objektorientierung endlich mal verstehen.
Also nur zum Verständnis:
System.out.println();
Mit ,,System" ist die Klasse gemeint. Mit ,,out" ist das Objekt in dieser Klasse gemeint und mit ,,println()" die Methode von dem Objekt ,,out", richtig?
Habe ich das richtig verstanden?! :(
Das heißt also, Klassen sind Baupläne, womit man Objekte zeugen kann. Und Objekte bestehen aus Eigenschaften (Attributen) sowie Methoden (Operationen)
Und zugreifen kann ich auf solche Dinge mit der Punktnotation.
Habe ich es bis hier hin richtig verstanden?
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.
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.
- System ist eine Klasse
- out ist eine Variable
- println() ist eine Methode
Verstehe ich leider nicht. :/ Könntest du mir bitte ein Beispiel-Quelltext zeigen? z.B mit System.out.println();