Подтвердить что ты не робот

Каково значение System.out.println в Java?

Является ли эта статическая функция println в классе out из пространства имен System?

namespace System {
  class out {
    static println ...
  }

Как я могу интерпретировать это имя? А где в JRE эта функция определена? В java.lang.System/java.lang.Object?

4b9b3361

Ответ 1

Нет. Фактически 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) из-за соглашение об именах (игнорирование грамматики).

Ответ 2

System - это класс, имеющий общедоступное статическое поле out. Так что это больше похоже на

class System 
{
    public static PrintStream out;
}

class PrintStream
{
    public void println ...
}

Это небольшое упрощение, так как класс PrintStream фактически находится в пакете java.io, но он достаточно хорош, чтобы показать взаимосвязь материала.

Ответ 3

Проверьте следующую ссылку:

http://download.oracle.com/javase/1.5.0/docs/api/java/lang/System.html

Вы ясно увидите, что:

System - класс в пакете java.lang.

out является статическим членом класса System и является экземпляром java.io.PrintStream.

println - метод java.io.PrintStream. Этот метод перегружен для печати сообщения для вывода адресата, который обычно является консолью или файлом.

Ответ 4

System.out.println()

Высокое понимание уровня

Для понимания этого нам нужно вспомнить несколько основ java:

  • dot (.) оператор в java: в java. (оператор точки) используется только для вызова методов или переменных. Поэтому мы можем сказать, что это либо метод, либо переменная.
  • Методы в java: мы знаем, что методы всегда имеют скобки '() после имени метода, поэтому out не может быть методом в java. Итак, его переменная и println() - это метод.
  • Имя класса в java: Имя класса должно начинаться с буквы письма в идеале в java, Так что система - это класс.

Теперь с базовыми знаниями Java мы знаем:

  • Система - это класс
  • out - переменная
  • println() - это метод

Подробнее:

out: статический или экземпляр

  • вызывается с использованием имени класса, поэтому мы знаем его статическую переменную класса System.

  • но вызывает метод println() метода, поэтому 'out является объектом ссылочного типа PrintStream.

Системный класс принадлежит пакету java.lang

class System {
  public static final PrintStream out;
  //...
}

класс Prinstream принадлежит пакету java.io

class PrintStream{
public void println();
//...
}

Ответ 5

println и print - это два перегруженных метода, которые относятся к классу PrintStream.

Для доступа к ним нам нужен экземпляр этого класса.

В System создается статическое свойство, называемое out типа PrintStream.

Следовательно, для доступа к вышеуказанным методам мы используем следующие утверждения:

System.out.println("foo");
System.out.print("foo");

Ответ 6

System.out.println("Hello World");
  • System. Это имя стандартного класса, содержащего объекты который инкапсулирует стандартные устройства I/O вашей системы.

Он содержится в пакете java.lang. Поскольку пакет java.lang импортируется в каждую программу Java по умолчанию, поэтому java.lang package является единственным пакетом в Java API, который не требует объявления импорта.

  1. out: Объект out представляет собой выходной поток (например, команда window) и является статическим членом данных класса <Б > System.

Итак, обратите внимание на System.out (System -Class и out) - статический объект, т.е. почему его просто называют классом, и нам не нужно создавать какой-либо объект).

  1. println: println() - это метод объекта out, который принимает текстовую строку в качестве аргумента и отображает ее на стандартный вывода i.e на экране монитора.

<я > Примечание
System -Class
out -статический объект
println() -method
Помните, что функция (в java-функции называется методом) всегда имеет формат function()

Ответ 7

System - это класс в пакете java.lang

out является static объектом класса PrintStream в пакете java.io

println() - это метод в классе PrintStream

Ответ 8

System является классом пакета java.lang, out является объектом класса PrintStream, а также static членом данных класса System, print() и println() является методом экземпляра класса PrintStream. он обеспечивает мягкий выход на консоли.

Ответ 9

Это довольно просто понять вопрос, но чтобы ответить на него, нам нужно углубиться в собственный код Java.

  • System является статическим классом и не может быть создан.
  • out - это ссылочная переменная, определенная в System
  • println() - это метод, используемый для печати на стандартном выходе.

A краткое и приятное объяснение всегда приветствуется в этом, поскольку мы можем многому научиться из этой отдельной строки самого заявления!

Ответ 10

System - это класс.

Выводная переменная (упомянутая выше как System.out) является переменной класса класса System.

Класс PrintStream находится в пакете классов, который используется для предоставления возможностей ввода-вывода для Java.

Переменная out в классе System ссылается (указывает на) экземпляр класса PrintStream (объект PrintStream), который автоматически создается, когда класс System загружается в приложение, Класс PrintStream имеет метод экземпляра с именем println(), который заставляет его аргумент отображаться на стандартном устройстве вывода.

Ответ 11

Поскольку out вызывается с самим именем класса System, а не экземпляром класса (объекта), So out должен быть статической переменной, принадлежащей классу System. out должен быть экземпляром класса, потому что он вызывает метод println().

// the System class belongs to java.lang package
class System {
    public static final PrintStream out;
}
class PrintStream {
    public void println();
}

Ответ 13

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 является отцом (суперклассом) всех классов, включая классы, которые вы определили.

Вот что говорит оракул:

public final class System extends Object

Класс System содержит несколько полезных полей и методов класса. Это не может быть создан.

Среди объектов, предоставляемых классом System, есть стандартный ввод, стандартный вывод и потоки вывода ошибок; доступ к внешним определенные свойства и переменные среды; средство загрузки файлов и библиотеки; и метод утилиты для быстрого копирования части массив.

С:     JDK1.0

Если вы не знаете что подразумевается под экземпляром, прочитайте это задание. Это вопрос С#, но концепция та же.

Кроме того, В чем разница между экземпляром и объектом?

Если вы не знаете что подразумевается под перегрузкой, прочитайте этот quesiotn.

Ответ 14

System - это класс в пакете java.lang.

out является членом статических данных в классе System и ссылочной переменной класса PrintStream.

Println() является обычным (перегруженным) методом класса PrintStream.

Ответ 15

System.out.println

System - это класс в пакете java.lang.

out является static членом System класса System и ссылается на переменную класса PrintStream.

Ответ 16

System: - это предопределенный класс пакета java.lang.

out: является членом static класса printStream и его соединение с консолью.

Println: - это метод класса printStream и его не a static.

Ответ 17

System - класс, который final в природе. public final class System{}. Принадлежит java.lang package

out - static ссылочная переменная типа PrintStream

println() - не static метод в классе PrintStream. PrintStream относится к пакету java.io.

Чтобы понять это лучше, вы можете посетить: Как работает System.out.println() на Java

Ответ 18

Из javadoc около System, вот что говорит doc:

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

Относительно println();

class PrintStream{
public void println();
}

Для простых автономных приложений Java типичным способом записи строки выходных данных является:

System.out.println(data);

Ответ 19

Система - это класс java.

out - это экземпляр, а также статический член PrintStream.

println - это метод PrintStream.

Ответ 20

System.out.println( "..." ) в коде Java преобразуется в JVM. Взгляд в JVM дал мне лучшее понимание того, что происходит за капотом.

Из книги Программирование формы виртуальной машины Java. Этот код копируется из https://github.com/ymasory/programming-for-the-jvm/blob/master/examples/HelloWorld.j.

Это исходный код JVM.

.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

Как "JVM не разрешает доступ к памяти на уровне байта" объект out в типе L java/io/PrintSteram; хранится в стеке с помощью команды getstatic JVM. Затем аргумент помещается в стек перед вызовом метода println класса java/io/PrintStream из экземпляра с именем out. Параметр метода - (L java/lang/String;), а тип вывода - void (V).