В java, java.lang.System
класс, который имеет в статической переменной.
Заявленный как: общественности статической окончательного InputStream в
Это означает, что в является InputStream varibale.
Однако я вижу пример, используя System.in.read()
для чтения ввода.Почему Java System.in.read() может вызывать не статический метод
Как это можно сделать, метод read()
в InputStream не статический метод, как это может быть directlly это назвать? Насколько я понимаю, только статический метод может вызывать непосредственно класс без создания экземпляра.
чтения() declartion: public abstract int read() throws IOException
Спасибо Jon тарелочкам за ответы, я до сих пор какой-то момент не понимаю.
Если я вызываю System.in.read()
, что означает, что я вызываю метод класса InputStream read()
?
java.lang.System.in -----> java.io.InputStream ----> read()
- вызова
java.lang.System.in
(который является статической переменной), в этоjava.io.InputStream
переменная - Вызывающий акт как вызов класса PrintStream.
- Процесс работает как вызов:
PrintStream.read()
- Однако у меня есть трудности с пониманием метода read(), который не является статическим методом, поскольку он не должен быть вызван напрямую.
Следует назвать как:
PrintStream й = новый PrintStream(); int c = rd.read();
as read() должен быть вызван экземпляром. чтения() declartion: общественный абстрактный ИНТ чтения() бросает IOException
PS: Я пытаюсь этот код не работает:
InputStream rd = new InputStream();
int c = rd.read();
System.out.println(c);
Но не знаю, почему.
исх: http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html
Спасибо, Джон Скит за ответ, я до сих пор не понимаю смысла. – loadload
@loadload: Ну, не указав, что это за точка, я не думаю, что я (или кто-то еще) может вам помочь. –
Если я вызываю System.in.read(), что означает, что я вызываю метод класса InputStream read()? java.lang.System.in -----> java.io.InputStream ----> read() 1.calling java.lang.System.in (который является статической переменной), in - java .io.InputStream variable 2. Вызывающий акт, как вызов класса PrintStream. 3. Процесс работает как вызов: PrintStream.read() 4.когда мне трудно понять метод read(), который не является статическим методом, так как его не следует вызывать напрямую. – loadload