Перейти к содержимому
Теория · Первая программа · урок 1 из 8

Первая программа на Java

Чему вы научитесь

Чему вы научитесь:

  • писать программу из класса Main с методом main и запускать её командой java Main.java;
  • печатать текст через System.out.println и System.out.print и предсказывать, где начнётся новая строка;
  • объяснять, что делают javac и JVM и почему одна программа работает на любом компьютере;
  • читать сообщения компилятора и исправлять ошибки, которые он нашёл.

Программа — это список инструкций для компьютера. Представьте ноты для оркестра — партитуру. В ней по порядку записано, что играть, и оркестр играет такт за тактом, от первого до последнего. Компьютер выполняет программу так же: инструкцию за инструкцией, сверху вниз.

Ноты записывают особыми знаками, понятными каждому музыканту. Программу тоже пишут на особом языке — в этом курсе на Java. Вот программа, которая печатает одну строку:

JAVA
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello, Java"); // Hello, Java
    }
}

Давайте разберём её по строкам:

  1. public class Main { открывает класс с именем Main — именованный блок, внутри которого лежит код. В Java любая инструкция живёт внутри какого-нибудь класса.
  2. public static void main(String[] args) { открывает метод main — именованный набор инструкций внутри класса. Эту строку пишут в каждой программе курса одинаково, слово в слово.
  3. System.out.println("Hello, Java"); — единственная инструкция: напечатать Hello, Java.
  4. Первая } закрывает метод main.
  5. Вторая } закрывает класс Main.

Текст от // до конца строки — комментарий, и Java его пропускает. В примерах курса комментарий в конце строки показывает, что эта строка печатает.

Где начинается выполнение

При запуске Java находит в классе метод main и выполняет его тело — инструкции между фигурными скобками после main(String[] args). Это и есть партитура, которую играет компьютер:

  • инструкции выполняются по очереди, сверху вниз;
  • после последней инструкции программа завершается.

Скобки и точка с запятой

У текста на Java строгая форма. Её держат три правила:

  • фигурные скобки { и } идут парой: открывающая начинает блок, закрывающая заканчивает его;
  • пара скобок метода main лежит внутри пары скобок класса Main, как коробка в коробке;
  • каждая инструкция заканчивается точкой с запятой, как предложение — точкой.

Отступы Java не читает, но человеку они показывают, что внутри чего лежит. В курсе каждый уровень вложенности сдвинут на четыре пробела.

Печать: println и print

System.out — это вывод программы: место, где появляется напечатанный текст. Запись System.out.println(…) читается так: напечатать в вывод то, что стоит в скобках. Текст в двойных кавычках печатается как есть, без кавычек. Число можно написать и без кавычек.

У печати два варианта. Разница между ними — в переводе строки.

println — с переводом строки

JAVA
System.out.println("Hello"); // Hello
System.out.println(42);      // 42

println печатает значение и переводит строку, поэтому следующая печать начинается с новой строки. Окончание ln помогает запомнить разницу: оно значит «перевести строку».

JAVA
System.out.print("Ja");
System.out.print("va");
System.out.println("!"); // Java!

print печатает значение и остаётся в той же строке. Давайте посмотрим, что делает каждая инструкция:

  1. print("Ja") начинает строку: в ней Ja.
  2. print("va") дописывает va вплотную. Сам print пробелов не добавляет.
  3. println("!") дописывает ! и переводит строку. Получается Java!.

В виджете эти строки стоят внутри целой программы. Нажимайте «Следующий шаг» и следите, на каком шаге заканчивается каждая строка вывода. Рядом с кодом виджет показывает метод, который выполняется сейчас: Main.main, то есть метод main класса Main. В поле «вывод» строка появляется, когда её закончит println.

Вживуюprint и println по шагамшаг 1 из 7 · рамок: 1

Java вызывает метод main и начинает с первой инструкции его тела.

Следите, на каком шаге заканчивается каждая строка вывода

Порядок строк в выводе всегда совпадает с порядком инструкций: Java не переставляет их и не пропускает.

Запуск программы

Чтобы запустить программу, сделайте три шага:

  1. Сохраните текст в файл Main.java. Имя файла совпадает с именем класса.
  2. Откройте терминал — окно для текстовых команд — в папке с этим файлом.
  3. Наберите команду java Main.java.

Перед запуском текст проверяет компилятор — программа, которая следит за правилами Java и переводит текст в форму, пригодную для выполнения. Это строгий корректор: если нарушено хоть одно правило, он показывает ошибку, и программа не запускается.

Здесь картинка с оркестром неточна. Музыкант догадается, какая нота спряталась под кляксой, и доиграет пьесу. Компилятор не догадывается: из-за одной ошибки не выполнится ни одна строка, даже верная.

Частая ошибка

Забыли закрывающую скобку класса:

JAVA
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello, Java");
    } // ✗
TEXT
error: reached end of file while parsing

Компилятор дочитал файл до конца и не нашёл пары для { из первой строки: класс Main так и остался открытым. Допишите } последней строкой. Чтобы видеть пары, ставьте закрывающую скобку точно под началом строки с открывающей.

Главное

  • Программа на Java — класс Main с методом main; выполнение начинается с main и идёт сверху вниз.
  • Фигурные скобки идут парами, а каждая инструкция заканчивается точкой с запятой.
  • println печатает значение и переводит строку, а print остаётся в той же строке и не добавляет пробелов.
  • java Main.java проверяет программу и запускает её; если компилятор нашёл ошибку, не выполняется ни одна строка.