Вопрос № 179942: Здравствуйте, эксперты. Объясните, пожалуйста, почему функция main должна быть именно public static (type) main(String args[]) {} ? Почему нельзя, например, написать: private void main()? Спасибо....
Вопрос № 179947:[J2SE 6] Здравствуйте, эксперты. Объясните, пожалуйста, зачем так много надо писать, чтобы прочитать строку из ввода? Что делают эти две строки, и зачем надо throws IOException? Ведь, например, на С++ все гораздо проще... <...
Вопрос № 179942:
Здравствуйте, эксперты.
Объясните, пожалуйста, почему функция main должна быть именно public static (type) main(String args[]) {} ?
Почему нельзя, например, написать: private void main()?
Отвечает Ivol84, 5-й класс :
Здравствуйте, Иванов Андрей Владимирович.
Функция main должна быть public static потому что Java должна ее видеть (public) и вызывать не создавая объекта (static).
Ответ отправил: Ivol84, 5-й класс
Ответ отправлен: 17.09.2010, 16:07
Номер ответа: 263087
Оценка ответа: 5
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 263087
на номер 1151 (Россия) |
Еще номера »
Вопрос № 179947:
[J2SE 6]
Здравствуйте, эксперты. Объясните, пожалуйста, зачем так много надо писать, чтобы прочитать строку из ввода? Что делают эти две строки, и зачем надо throws IOException? Ведь, например, на С++ все гораздо проще...
Код:
public static void main(String[] args) throws IOException{ String line; InputStreamReader input = new InputStreamReader(System.in); // ? BufferedReader reader = new BufferedReader(input); // ? line = reader.readLine();
Отвечает Ivol84, 5-й класс :
Здравствуйте, Иванов Андрей Владимирович. Все это многословие необходимо из - за правила "одна ответственность" (Single Responsibility). В данном случае действуют несколько объектов: InputStreamReader - отвечает за создание читателя входного потока (System.in), т.е. с его помощью можно прочитать символ или набор символов (указанное количество символов). Он не буферезирует поток, т.е. входные данные заносятся сразу после нажатия кнопки клавиатуры(в данном случае). Т.е. если вы сделаете примерно
так: char ch[] = new char[10]; input.read(ch, 0, 10); то вы будете вводить до нажатия ввода но сохранятся только 10 символов (каждый символ будет сохраняться после нажатия клавиши. BufferedReader - буферезирует читателя, т.е. данные сохраняются после нажатия определенной кнопки (в данном случае ввода). Объект этого класса может записывать в строку. А throws IOException необходим для того, чтобы сказать что функция може
т выбрасывать исключение (readLine() выбрасывает исключение IOException и если вы его не перхватываете оно выбрасывается вверх к вызывающему методу).
Ответ отправил: Ivol84, 5-й класс
Ответ отправлен: 17.09.2010, 16:36
Номер ответа: 263090
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 263090
на номер 1151 (Россия) |
Еще номера »
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.