2016-05-10 7 views
-2

Ich habe gerade angefangen Java zu lernen, durch die App "Hallo Welt" lernte ich das Objekt System.out kennen.Kann ein Objekt zu zwei Klassen gehören?

Out ist ein Objekt, aber um es zu benutzen, müssen wir System davor schreiben. Es ist offensichtlich und mein Buch sagt, dass das zur Systemklasse gehört.

Aber später in dem Buch, mein Buch sagt out gehört auch PrintStream-Klasse. Dadurch können wir println-Methoden verwenden, da sie beide der PrintStream-Klasse angehören.

Ich bin verwirrt, welche Klasse gehört zu?

Auch ist es nur eine Konvention, dass für Objekte wie out, müssen wir auch die Klasse schreiben, wann immer wir es verwenden. Für so etwas wie;

String gruß = "Hallo, Welt!"; Wenn wir (verwenden .length wollen) Methode, die ich auch auf String-Klasse gehört denke, wir nicht schreiben: int n = String.greeting.length()

Stattdessen ist es gerade: int n = Gruß.();

+0

Sie sollten wahrscheinlich über Java und Vererbung nachlesen: http://beginnersbook.com/2013/03/inheritance-in-java/ –

+0

'String.greeting.length()' macht keinen Sinn, weil 'String 'hat kein Begrüßungsfeld. Sie schreiben 'System' vor' out.println() ', weil die Klasse' System' das statische Feld enthält, das 'stdout' enthält. – Natecat

+0

@RobertMoskal, ich wusste nichts von der Vererbung. Das Thema ist 8 Kapitel nach dem ich bin. Ich möchte es nicht lesen, ohne die Dinge dazwischen zu lesen, nur für den Fall, dass ich etwas Wichtiges vermisse, das mein Verständnis behindert. – user11355

Antwort

1

out ist eine (statische) Elementvariable der Klasse System.
Es ist eine Instanz der Klasse PrintStream.

class Foo { 
    String x; 
} 

x ist eine Zeichenfolge. Es ist ein Mitglied der Klasse Foo. Gleiche Idee.

+0

gesetzt wird. Ich wusste nicht statisch, nicht darauf Kapitel noch, noch ein Kapitel weg. – user11355

+0

Was ist eine Instanz? – user11355

+0

Eine Instanz ist nur das erstellte Objekt.So ist zum Beispiel "Hallo" eine bestimmte Instanz des Objekts "String" – gadu

Verwandte Themen