Первая программа Java
Этот файл вы уже запускали, и на экране появилось mint. Эта страница остаётся с тем же файлом и задаёт другой вопрос: какая строка внутри файла вывела это слово и какие строки не вывели ничего? Java заново ставить не нужно. Строки версий с предыдущей страницы можно оставить как есть. Откройте Mint.java и прочитайте файл сверху вниз. Экран, который вы собираетесь объяснить, по-прежнему состоит из одной строки, и эта строка — mint.
В файле больше одной строки, поэтому первая догадка обычно такая: каждая строка файла превращается в строку на экране. Эта догадка неверна, и вся страница показывает почему. Три строки что-то называют, а выводит только одна из них. Фигурные скобки { и } объединяют эти строки в группу и тоже ничего не выводят. Когда вы сможете с файлом перед глазами показать пальцем на ту строку, которая выводит, страница свою работу сделала. Следующая страница добавит в файл заметку, которую экран не показывает. Слово mint она не изменит.
public class Mint {
public static void main(String[] args) {
System.out.println("mint");
}
}
Первая строка называет файл
Первая строка — public class Mint. Читайте её как три слова, у каждого из которых своя роль, а не как фразу, которую напечатает экран. Слово public означает, что другой код может пользоваться этим файлом. Слова public на экране вы не увидите. Слово class означает, что этот файл описывает одну именованную единицу Java. Слова class на экране тоже нет. Mint — это имя такой единицы. Файл на диске называется Mint.java именно потому, что имя — Mint. Если вы смените имя в этой строке, имя файла придётся сменить вместе с ним, иначе javac откажется принимать файл. Это правило про имя файла, а не про экран. Посмотрите ещё раз на экран с предыдущей страницы: на нём не Mint, а mint. Заглавная M и строчная m — не одно и то же слово. Первая строка своё имя на экран никогда не выводит.
В конце этой строки стоит открывающая фигурная скобка {. Парная ей закрывающая скобка } — последняя строка файла. Всё, что находится между ними, относится к class Mint. Скобки — это ограда. Они сообщают Java, где эта единица начинается и где заканчивается. Ограда — не слово для экрана. Рядом с mint вы не увидите ни { , ни }. Если удалить открывающую скобку, файл сломается, и javac вместо молчания выведет ошибку. Эта ошибка — тема не этой страницы. Здесь обе скобки остаются на месте, и на экране по-прежнему mint.
Строка main — это место, откуда Java начинает работу
Следующая строка — public static void main(String[] args). На неё показывают, когда спрашивают, где программа начинается, и насчёт начала люди правы. Ошибаются они тогда, когда говорят дальше, что экран показывает main. Когда вы вводите java Mint, Java ищет строку именно такой формы. Выполнение начинается с неё. Начать и вывести — не одно и то же. Слова в этой строке — указания о том, как начинать. Это не слова для экрана.
Возьмите слова по одному и сверьте каждое с экраном. Слово public и здесь говорит, что эту строку можно запускать снаружи файла. Слово static означает, что Java может запустить эту строку, не создавая сначала объект. С объектами вы пока не знакомы, поэтому вам достаточно знать, что слово static в этой строке обязательно и что оно не выводится. Слово void означает, что строка не возвращает тому, кто её вызвал, никакого значения. На этой странице вызывающего нет, и void на экране нет. main — это имя, которое ищет Java. Имя должно быть main, именно из этих четырёх букв, иначе java Mint не запустит этот файл. И всё равно на экране этих четырёх букв нет. String[] args — это место для слов, которые вы могли бы набрать после имени программы. Лишних слов вы не вводили. Вы ввели только java Mint. В этом запуске args пуст, и ни String, ни args на экране не появляются.
Значит, про строку main одновременно верны две вещи. Java действительно начал именно с неё. И при этом экран не получил от этой строки ни одного слова. Если ваш взгляд цепляется за main только потому, что это слово стоит в середине файла, переведите его дальше. Слово, которое вы помните с экрана, — mint, и в этой строке mint не написано.
Внутренняя строка выводит mint
Внутри строки main, между её собственными скобками, есть ещё одна строка: System.out.println("mint"). Именно она выводит на экран. В файле она сдвинута вправо, чтобы было видно, что она стоит внутри main. Сдвиг состоит из пробелов. Пробелы на экран тоже не выводятся. Java выполняет эту внутреннюю строку потому, что она находится внутри строки, с которой программа начинается. Экран использует то, что выводит внутренняя строка. Имя внешней строки ему не нужно.
Читайте внутреннюю строку слева направо. System.out — это экран, место, куда выводятся строки. println означает: выведи это, а потом закончи строку. То, что стоит в круглых скобках, и есть выводимое. Внутри скобок слово mint заключено в двойные кавычки. Кавычки показывают, что mint — это текст. Сами они частью текста не являются. Уберите их мысленно, и останется слово mint, а оно и есть весь экран. В файле же кавычки оставьте на месте. Без кавычек javac не будет считать mint текстом. Точка с запятой в конце завершает строку для Java. Точки с запятой на экране вы не видите. Вы видите mint, а потом строка заканчивается, потому что её закончил println.
Вот эта выводящая строка отдельно, чтобы остальные не могли её заслонить.
System.out.println("mint");
Ничто в команде java Mint не выбирает слово mint. Команда лишь называет файл. Слово берётся из кавычек. Если бы в кавычках стояло другое слово, на экране было бы другое слово, но на этой странице этого нет. Здесь в кавычках стоит mint, поэтому на экране mint. Одна строка. Второй строки нет. Кавычек на экране нет. Слова main нет. Слова Mint нет.
📊 Что показывает экран от каждой строки
| Строка | Экран |
|---|---|
| public class Mint | ничего от этой строки |
| public static void main(String[] args) | ничего от этой строки |
| System.out.println("mint") | mint |
Как это обычно понимают неправильно
Самая частая ошибка — читать файл сверху и считать выводом самое знакомое слово. Слово main выглядит важным, и оно действительно важно, потому что без него Java файл не запустит. Но важность — это не вывод. Можно закрыть строку main пальцем, и выводящей всё равно останется System.out.println("mint"). А вот закрыв выводящую строку, вы уже не объясните экран. Другая ошибка — говорить, что на экране Mint, раз файл и class называются Mint. Экран берёт слово между кавычками, а оно написано со строчной m. Третья ошибка — считать строки. В файле видно несколько строк и несколько скобок. На экране — одна строка. Скобки, слова public, static и void, имя main и имя Mint после запуска остаются в файле. Запуск их не удаляет. И не печатает тоже.
Всё это можно сверить с тем запуском, который вы уже делали. javac Mint.java не вывела ни одной строки. Это молчание означало, что файл принят, вместе со строкой main и скобками. java Mint вывела mint. Это одно слово — работа строки с println. Если вы сейчас запустите java Mint ещё раз из той же папки, на экране снова будет mint. Файл на этой странице не менялся, поэтому экран измениться не может.
Теперь вы можете положить палец на System.out.println("mint") и сказать, что экран берётся из этой строки. Можете положить палец на public static void main(String[] args) и сказать, что Java начинает здесь, а слова main на экране нет. Можете положить палец на public class Mint и сказать, что это имя совпадает с файлом и не совпадает с экраном. Следующая страница вставит в файл заметку. Заметка предназначена для человека, который читает файл. Экран всё равно останется mint, потому что заметка — это не второй println.
Экран берётся из одной строки
На экране mint. Это слово выводит System.out.println("mint"). Кавычек на экране нет. Строки с main на экране нет. Первой строки, public class Mint, на экране нет. Второй строки нет.
🧠 Проверьте Свои Знания
Проверьте Свои Знания
Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему
📝 Инструкции
- Внимательно прочитайте каждый вопрос
- Выберите лучший ответ на каждый вопрос
- Вы можете пересдавать тест столько раз, сколько захотите
- Ваш прогресс будет показан вверху