Was bedeutet System.out.println in Java?
-
25-09-2019 - |
Frage
Ist das statisch? println
Funktion in out
Klasse von System
Namensraum?
namespace System { class out { static println ... }
Wie kann ich diesen Namen interpretieren?Und wo in JRE ist diese Funktion definiert?In java.lang.System
/java.lang.Object
?
Lösung
Nein. Eigentlich ist out
ein statisches Element in der Klasse System
(nicht wie in NET), eine Instanz von PrintStream
sein. Und println
ist ein normaler (überladene) -Methode der PrintStream
Klasse.
Siehe http://download.oracle .com / JavaSE / 6 / docs / api / java / lang / system.html # out .
Eigentlich, wenn out
/ err
/ in
waren Klassen, würden sie mit Kapitalcharakter benannt werden (Out
/ Err
/ In
) aufgrund der Namenskonvention (ohne Berücksichtigung Grammatik).
Andere Tipps
System
ist eine Klasse, die ein öffentliches statisches Feld out
hat. So ist es mehr wie
class System
{
public static PrintStream out;
}
class PrintStream
{
public void println ...
}
Dies ist eine leichte Vereinfachung, da die PrintStream
Klasse tatsächlich in dem java.io
Paket ist, aber es ist gut genug, um das Verhältnis von Sachen zu zeigen.
Überprüfen Sie folgenden Link:
http://download.oracle. com / JavaSE / 1.5.0 / docs / api / java / lang / system.html
Sie werden deutlich sehen, dass:
System
ist eine Klasse in dem java.lang
Paket.
out
ist ein statisches Element der System
Klasse und ist eine Instanz java.io.PrintStream
.
println
ist eine Methode von java.io.PrintStream
. Dieses Verfahren ist überlastet Nachricht zum Ausgabeziel drucken, die in der Regel eine Konsole oder Datei ist.
System.out.println ()
Hohe Verständnis
Für das Verständnis brauchen wir einige Grundlagen von Java erinnern:
-
(.)
- Punkt-Operator in Java: In Java. (Punkt-Operator) wird nur verwendet, Methoden oder Variablen zu bezeichnen. Also sagen wir aus kann entweder Verfahren oder variabel ist.
- Methoden in Java: Wir wissen, Methoden immer Klammer haben ‚()‘ nach dem Methodennamen, kann also aus keiner Methode in Java sein. So heraus seine eine Variable und println () ist eine Methode .
- Klassenname in Java. Klassenname mit Großbuchstaben ideal in Java beginnen sollte, So System ist eine Klasse
Jetzt mit Grundkenntnissen der Java wissen wir:
- System ist ein Gerät der Klasse
- out ist eine Variable
- println () ist eine Methode
Lets mehr in Details erhalten:
aus Variable : statisch oder Instanz
-
mit dem Klassennamen aufgerufen, so dass wir seine statischen Variable von System-Klasse kennen.
-
aber es ist ein Verfahren println () aufrufen Verfahren so ‚out‘ ist eine Aufgabe der Referenztyp Print.
die System-Klasse gehört zu java.lang-Paket
class System {
public static final PrintStream out;
//...
}
die Prinstream Klasse gehört zu java.io Paket
class PrintStream{
public void println();
//...
}
println
und print
sind die beiden überladenen Methoden, die auf die System
Klasse.
Damit die obigen Methoden zuzugreifen wir die folgenden Anweisungen verwenden:
System.out.println("foo");
System.out.print("foo");
System.out.println("Hello World");
System
:Es ist der Name der Standardklasse, die Objekte enthält, die den Standard zusammenfassen E/A Geräte Ihres Systems.
Es ist in der enthalten Paket java.lang
.Seit java.lang
Das Paket wird daher standardmäßig in jedes Java-Programm importiert java.lang
Paket ist das einzige Paket in der Java-API, das keine Importdeklaration erfordert.
out
:Das Objekt out repräsentiert Ausgangsstream (IE -Befehlsfenster) und ist das statische Datenelement der KlasseSystem
.
Also hier beachten System.out
(System
-Klasse & out
- statisches Objekt, d. h. warum es einfach durch den Klassennamen angesprochen wird und wir kein Objekt erstellen müssen).
println
:Derprintln()
Ist Methode vonout
Objekt, das die Textzeichenfolge als Argument nimmt und sie auf die Standardausgabe anzeigt, dh IE auf dem Monitorbildschirm.
Notiz
System
-Klasse
out
-statisches Objekt
println()
-Methode
Denken Sie daran, dass eine Funktion (in Java wird eine Funktion als Methode bezeichnet) immer das Format hat Funktion()
• System
ist eine Klasse in java.lang
Paket
• out
ist ein static
Objekt von PrintStream
Klasse in java.io
Paket
• println()
ist ein Verfahren, in dem PrintStream
Klasse
System
eine Klasse von java.lang
Paket ist, out
ist ein Ziel der PrintStream
Klasse und auch static
Daten Mitglied der Klasse System
, print()
und println()
ist eine Instanzmethode von PrintStream
Klasse.
es ist eine unscharfe Ausgabe auf der Konsole zur Verfügung stellen.
Es ist ganz einfach, die Frage zu verstehen, aber es beantworten müssen wir tiefer in Java nativen Code graben.
-
System
ist statische Klasse und nicht instanziiert werden kann -
out
ist eine Referenzgröße inSystem
definiert -
println()
ist die verwendete Methode auf der Standardausgabe gedruckt werden soll.
kurze und schöne Erklärung wird immer auf diese gern gesehen, wie wir selbst viel von dieser einzigen Zeile Anweisung lernen können!
Da aus dem System
Klassennamen selbst genannt wird, nicht eine Instanz einer Klasse (ein Objekt), muss also out
eine statische Variable der Klasse System
gehört, sein. out
muss Instanz einer Klasse sein, weil es die Methode println()
aufruft.
// the System class belongs to java.lang package
class System {
public static final PrintStream out;
}
class PrintStream {
public void println();
}
System
ist eine Klasse in java.lang package
. Und out
ist ein PrintStream
Objekt. Nizza Erklärung @ http://lazy-geeks.blogspot.in/ 2015/01 / what-is-systemoutprintln.html
System.out.println();
System
ist die Klasse
out
ist ein Variable in der System
Klasse und es ist ein static
und Variablentyp ist System
hier .
println()
ist eine überladene Methode in PrintStream
Klasse.
PrintStream
umfasst drei überladene Druckverfahren, das sind:
-
print()
-
println()
-
printf()
Sie können a href finden Sie unter <= "http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b27/java/io/PrintStream.java" rel =“ nofollow noreferrer "> Implementierung von PrintStream
hier .
Sie können nicht instantiate System
Klasse und es ist Kind Klasse von Object
und die Object
ist der Vater (Oberklasse) der einzelnen Klassen einschließlich Klassen, die Sie definiert haben.
Hier ist, was die Oracle-Dokumentation sagt:
public final class System extends Object
Die
System
Klasse enthält mehrere nützliche Klassenfelder und Methoden. Es kann nicht instanziert werden.Zu den Einrichtungen der
System
-Klasse ist die Standardeingabe, Standard-Ausgabe und Fehlerausgangsströme; Zugriff auf extern definierten Eigenschaften und Umgebungsvariablen; ein Mittel zum Laden von Dateien und Bibliotheken; und ein Dienstprogramm Verfahren zum schnellen Kopieren eines Teils ein Array.Seit: JDK1.0
Wenn Sie donot wissen was von instantiate, Lese gemeint diese questioh . Es ist C # Frage, aber das Konzept ist das gleiche.
Auch Was ist der Unterschied zwischen einer Instanz und ein Objekt?
Wenn Sie donot wissen was durch Überlastung gemeint ist, lesen Sie diese quesiotn .
System
ist eine Klasse in java.lang
Paket.
out
ist das statische Datenelement in System
Klasse und der Referenzgröße PrintStream
Klasse.
Println()
ist eine normale (überladene) Methode der PrintStream
Klasse.
Von der javadoc über System
, hier ist es, was der Doc sagt:
public final class System
extends Object
The System class contains several useful class fields and methods. It cannot be instantiated.
Among the facilities provided by the System class are standard input, standard output, and error output streams; access to externally defined properties and environment variables; a means of loading files and libraries; and a utility method for quickly copying a portion of an array.
Since:
JDK1.0
In Bezug auf System.out
public static final PrintStream out
The "standard" output stream class Prinstream belongs to java.io package. This stream is already open and ready to accept output data.
When the JVM is initialized, the method initializeSystemClass() is called that does exactly what it’s name says – it initializes the System class and sets the out variable. The initializeSystemClass() method actually calls another method to set the out variable – this method is called setOut().
Typically this stream corresponds to display output or another output destination specified by the host environment or user.
In Bezug auf println ();
class PrintStream{
public void println();
}
Für einfache Stand-alone-Java-Anwendungen, eine typische Art und Weise eine Reihe von Ausgangsdaten zu schreiben ist:
System.out.println(data);
System
- Klasse, die final
in der Natur. public final class System{}
. Gehört zu java.lang
Paket
out
- static
Referenzvariable vom Typ PrintStream
println()
- nicht static
Methode in PrintStream
Klasse.
PrintStream
gehört zu java.io
Paket.
Um es besser zu verstehen, können Sie unter: Wie System.out. println () Works In Java
System ist die Java-Klasse.
aus ist die Instanz und auch statisches Element von Print.
println ist die Methode der Print.
System.out.println ( "...") in Java-Code in JVM übersetzt. Ein Blick in die JVM hat mich besser zu verstehen, was auf hinter der Motorhaube wird.
Aus dem Buch Programmierung Form der Java Virtual Machine . Dieser Code wird kopiert von https: // Github .com / ymasory / Programmierung-for-the-jvm / Blob / Master / examples / HelloWorld.j .
Dies ist der JVM-Quellcode.
.class public HelloWorld
.super java/lang/Object
.method public static main([Ljava/lang/String;)V
.limit stack 2
.limit locals 1
getstatic java/lang/System/out Ljava/io/PrintStream;
ldc "Hello, world"
invokevirtual java/io/PrintStream/println
(Ljava/lang/String;)V
return
.end method
.end class
Wie „Die JVM nicht auf Byte-Ebene Zugriff auf den Speicher erlauben“ das out
Objekt in Art Ljava/io/PrintSteram
; ist in einem Stapel mit getstatic
JVM Befehl gespeichert.
Dann wird das Argument auf den Stapel geschoben, bevor ein Verfahren println
der java/io/PrintStream
Klasse von einer Instanz namens out
genannt. Die Methode der Parameter ist (Ljava/lang/String
;) und Ausgangstyp ist void (V).
System
:. Klasse von java.lang
Paket vordefiniert ist
out
:. ist ein static
Mitglied printStream
Klasse und ihre connect mit Konsole
Println
:. ist eine Methode der printstream
Klasse und ihre nicht ein static
System.out.println
System
ist eine Klasse, in dem java.lang
Paket.
out
ist ein static
Daten Mitglied der System
Klasse und verweist auf eine Variable der PrintStream
Klasse.