20 ответов:
нет. На самом деле
outявляется статическим членом вSystemкласс (не как в .NET), будучи экземпляромPrintStream. Иprintlnявляется нормальным (перегруженным) методомPrintStreamкласса.см.http://download.oracle.com/javase/6/docs/api/java/lang/System.html#out.
на самом деле, если
out/err/inбыли классы, они были бы названы с заглавной буквы (Out/Err/In) из-за соглашение об именах (игнорируя грамматику).
Systemэто класс, который имеет публичное статическое полеout. Так что это больше похожеclass System { public static PrintStream out; } class PrintStream { public void println ... }Это небольшое упрощение, так как
PrintStreamкласс на самом деле находится вjava.ioпакет, но это достаточно хорошо, чтобы показать отношения вещей.
проверьте следующие ссылки:
http://download.oracle.com/javase/1.5.0/docs/api/java/lang/System.html
вы ясно увидите, что:
SystemЭто класс наjava.langпакета.
outэто статический член!--17--> наSystemкласс, и является экземпляромjava.io.PrintStream.
printlnэто метод наjava.io.PrintStream. Этот метод перегружен для печати сообщения в место назначения вывода, которое обычно является консолью или файлом.
printlnиPrintStreamкласса.для доступа к ним нужен экземпляр этого класса.
A статическое свойство под названием
outтипаPrintStreamсоздается наSystemкласса.поэтому для доступа к вышеуказанным методам мы используем следующие утверждения:
System.out.println("foo"); System.out.print("foo");
System.out.println("Hello World");
System: это имя стандартного класса, который содержит объекты это инкапсулирует стандарт I / O устройств вашей системы.содержится в пакета
java.lang. Так какjava.langпакет импортируется в каждую программу java по умолчанию, поэтомуjava.langпакета - это единственный пакет в Java API, который не требует импорта декларация.
out:объект out представляет выходной поток(т. е. команда окна)и статический член данных классаSystem.например
System.out(System-классout- статический объект, т. е. почему его просто называют classname и нам не нужно создавать какой-либо объект).
println:Theprintln()is метод наoutобъект, который принимает текстовую строку в качестве аргумента и выводит его на стандартный выход я.е на экране монитора.
Примечание
System-классout-статический объектprintln()методом
помните, что функция (в java функция называется методом) всегда имеет формат
Systemклассjava.langпакет,outобъектPrintStreamкласс, а такжеstaticэлемент данныхSystemкласса,print()иprintln()является методом экземпляраPrintStreamкласса. он обеспечивает мягкий выход на консоли.
это довольно просто понять вопрос, но чтобы ответить на него, мы должны копать глубже в Java native code.
Systemявляется статическим классом и не может быть созданoutявляется ссылочной переменной, определенной вSystemprintln()метод, используемый для печати на стандартном выходе.A краткое и приятное объяснение всегда приветствуется на этом, как мы можем многому научиться из этой единственной линии само заявление!
потому что out вызывается с
Systemсамо имя класса, а не экземпляр класса (объекта), поэтомуoutдолжна быть статическая переменная, принадлежащая классуSystem.outдолжен быть экземпляр класса, потому что он вызывает методprintln().// the System class belongs to java.lang package class System { public static final PrintStream out; } class PrintStream { public void println(); }
Systemкласса вjava.lang package. ИoutэтоPrintStream"объект". Хорошее объяснение @ http://lazy-geeks.blogspot.in/2015/01/what-is-systemoutprintln.html
System.out.println();
Systemкласс
outявляется переменной вSystemи этоstaticи переменных типаPrintStream.здесь
outпеременнаяSystemкласс:public final static PrintStream out = null;вы можете увидеть реализацию
Systemздесь.
println()является перегруженным методом вPrintStreamкласса.
PrintStreamвключает в себя три перегружен методы печати, это:
print()println()printf()вы можете ознакомиться реализация
PrintStreamздесь.вы не можете создать экземпляр
Systemкласс и это дочерний классObjectиObjectявляется отцом (суперкласс) каждого класса, включая классы, которые вы определили.вот что говорит oracle docs:
public final class System extends ObjectThe
Systemкласс содержит несколько полезных полей и методов класса. Оно невозможно создать экземпляр.среди объектов, предоставляемых
Systemкласс стандартный входной сигнал, стандартный выход, и потоки вывода ошибок; доступ к внешнему определенные свойства и переменные среды; средство загрузки файлов и библиотек; и утилиты для быстрого копирования части матрица.С тех пор: JDK1.0
если вы не знаете что означает instantiate, прочитайте этот вопрос. Это вопрос C#, но концепция такая же.
и в чем разница между экземпляром и объектом?
если вы не знаете что подразумевается под перегрузкой прочитайте этот вопрос.
System- Это класс.переменная out (упоминается выше как
System.out) - это переменная класса системы класса.The
PrintStreamкласс находится в пакете классов, которые используются для обеспечения возможности ввода-вывода потока для Java.The
outпеременнаяSystemкласс ссылается (указывает) на экземплярPrintStreamкласса (
Systemкласса вjava.langпакета.
outявляется статическим элементом данных вSystemкласс и ссылочная переменнаяPrintStreamкласса.
Println()является нормальным (перегруженным) методомPrintStreamкласса.
из javadoc о
System, вот что говорит доктор: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о
System.outpublic 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.относительно println ();
class PrintStream{ public void println(); }для простых автономных Java-приложений типичным способом записи строки выходных данных является:
System.out.println(data);
System- классfinalв природе.public final class System{}. Принадлежитjava.langпакета
out-staticссылочная переменная типаPrintStream
println()- неstaticметодPrintStreamкласса.PrintStreamпринадлежит .чтобы понять это лучше, вы можете посетить:Как Система.из.println () работает в Java
система - это класс java.
out является экземпляром, а также статическим членом PrintStream.
println - это метод PrintStream.
System.out.println
System- это классjava.langpacakge.out- этоstaticэлемент данныхSystemкласс и ссылается на переменнуюPrintStreamкласса.
System: является предопределенным классомjava.langпакета.
out: этоstaticчленprintStreamкласс и его соединение с консолью.
Println: методprintstreamкласс и его неstatic.
Comments