Для чтения символа с клавиатуры достаточно вызвать метод System.in.read(), где System. in - объект ввода (с клавиатуры), дополняющий объект вывода System.out.
Давайте разберемся:
System.in.read() - System это класс, in это переменная-константа, read() - это метод. Хотелось бы спросить почему в книге написано вот так:
Для чтения символа с клавиатуры достаточно вызвать метод System.in.read(), где System. in - объект ввода (с клавиатуры)
Почему System.in объект ввода? Почему не написано что за "входящий поток" отвечает константа in класса System, а написано что это объект ввода?
Просто под объектом я представляю экземпляр класса, то есть аля:
System systemObj = new System();
Где systemObj является объектом. Можно по подробнее?
Любая переменная/поле в Java - это либо примитив, либо null, либо экземпляр какого-то класса. Третьего не дано. Очевидно, что System.in не является ни примитивом, ни null. Значит, это экземпляр какого-то класса.
Более точно, это экземпляр класса FileInputStream. Потому что в современных ОС потоки стандартного ввода-вывода ведут себя как предварительно открытые файлы. Создать аналогичный объект вы можете самостоятельно вот так:
InputStream myIn = new FileInputStream(FileDescriptor.in);
Потому что "входящий поток" - это тоже объект. Если открыть исходный код System, то можно увидеть, что in - это переменная типа InputStream. То есть в рантайме в ней хранится объект класса InputStream.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости