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?

War es hilfreich?

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");
  1. 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.

  1. 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).

  1. println:Der println() Ist Methode von out 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 in System 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:

  1. print()
  2. println()
  3. 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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top