Python - необходим объект типа байтов, а не str

System.out.println () -

Учитывая это, давайте разберем это, начиная с оператора точки. В Java оператор точки может использоваться только для вызова методов и переменных, поэтому мы знаем, что 'out' должен быть либо методом, либо переменной. Теперь, как мы классифицируем «выход»? Ну, «выход» не мог быть методом из-за того, что скобок нет («) (после), что означает, что это явно не метод, который вызывается. И «out» не принимает никаких аргументов, потому что только методы принимают аргументы - вы никогда не увидите что-то вроде «System.out (2,3) .println». Это означает, что «выход» должен быть переменной.

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

Заметив тот факт, что 'println ()' явно является методом, мы можем далее классифицировать 'out' в System .out.println (). Мы уже рассудили, что «out» - статическая переменная, принадлежащая классу System. Но теперь мы можем видеть, что «выход» должен быть экземпляром класса, потому что он вызывает метод «println ()».

Процесс мысли, который следует использовать для получения ответа, преднамеренно проиллюстрировано выше. Не зная точного ответа заранее, вы можете приблизиться к нему, применив некоторые базовые знания Java. Большинство интервьюеров не ожидали, что вы узнаете, как System.out.println () работает сверху, но скорее увидит, что вы используете свои базовые знания Java, чтобы получить ответ, близкий к точному.

Более точный ответ на исходный вопрос таков: внутри класса System это объявление «out», которое выглядит так: «public static final PrintStream out», а внутри класса Prinstream - это объявление «println ()», который имеет подпись метода, которая выглядит так: «public void println ()».

Вот как выглядят разные фрагменты System.out.println ():

//the System class belongs to java.lang package

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

//the Prinstream class belongs to java.io package
class PrintStream{
public void println();
//...
}
35
задан Jean-Francois T. 6 June 2017 в 06:18
поделиться