$ sudo teach IT
МОДУЛЬ 1 · УРОК 4

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

Наконец-то мы пишем код! В этом уроке вы создадите первую Java-программу, разберёте каждую строчку по отдельности и научитесь компилировать и запускать её.

⏱ ~30 минут 🎓 Для новичков ☕ Java

📁 Создание проекта в IntelliJ IDEA

Давайте создадим наш первый Java-проект. Откройте IntelliJ IDEA и выполните следующие шаги:

  1. Нажмите "New Project" (или File → New → Project)
  2. Слева выберите "Java"
  3. Убедитесь, что JDK выбран (Java 21)
  4. В поле "Name" введите FirstProgram
  5. В поле "Location" выберите удобную папку (например, ~/JavaProjects)
  6. Нажмите "Create"

IntelliJ создаст структуру проекта с папкой src — именно сюда мы будем складывать наши файлы с кодом. В папке src уже может быть файл Main.java — удалите его, мы создадим свой.

Теперь создайте новый Java-класс:

  1. Нажмите правой кнопкой на папку src
  2. Выберите New → Java Class
  3. Введите имя: HelloWorld (без расширения .java)
  4. Нажмите Enter

IntelliJ создаст файл HelloWorld.java и автоматически откроет его. Теперь впишите туда наш код:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

💡 Совет: IntelliJ сам добавит закрывающие фигурные скобки. Но не полагайтесь на это — привыкайте печатать их вручную. Это важно для формирования мышечной памяти.

🔍 Разбираем каждую строку

Давайте разберём нашу программу по строчкам. Каждое слово здесь имеет значение.

Строка 1: public class HelloWorld

public — модификатор доступа. Означает, что этот класс доступен отовсюду. Подробно о модификаторах мы поговорим в Module 7, пока просто запомните: каждая Java-программа начинается с public класса.

class — ключевое слово, которое говорит Java: "я создаю класс". Класс — это основа любой Java-программы. Без класса Java не запустится. Подробно разберём классы в Module 7.

HelloWorld — имя класса. По правилам именования классов в Java: первая буква заглавная, далее CamelCase. Имя файла должно совпадать с именем класса! Файл HelloWorld.java содержит класс HelloWorld.

public class HelloWorld {  // начало класса
    // ... содержимое класса
}  // конец класса

⚠️ Частая ошибка: Имя файла должно точно совпадать с именем класса, включая регистр! Файл helloworld.java НЕ будет работать с классом HelloWorld.

Строка 2: public static void main(String[] args)

Это самая загадочная строка для новичка. Давайте разберём каждое слово:

  • public — метод доступен отовсюду (JVM должен его найти)
  • static — метод принадлежит классу, а не объекту. Пока не задумывайтесь об этом — подробно разберём в Module 7
  • void — метод ничего не возвращает. Он просто выполняет действия
  • main — имя метода. Это ТОЧКА ВХОДА в программу. Java всегда начинает выполнение с метода main
  • String[] args — массив строк, содержащий аргументы командной строки. Подробно разберём в Module 5

Аналогия: представьте здание. Метод main — это входная дверь. Когда JVM запускает вашу программу, она ищет именно эту дверь и входит через неё. Без main программа просто не запустится.

public static void main(String[] args) {
    // весь ваш код здесь
}

Фигурные скобки { } обозначают границы метода. Всё, что внутри этих скобок — это то, что выполнится при запуске программы.

💡 Аналогия: main — это как кнопка "Пуск" на микроволновке. Вы нажимаете "Пуск" (main) — и микроволновка начинает работать. Без нажатия кнопки ничего не происходит.

Строка 3: System.out.println("Hello, World!");

Это команда «вывести текст на экран». Давайте разберём:

  • System — системный класс Java (предоставляет доступ к системным ресурсам)
  • out — объект, отвечающий за стандартный вывод (консоль)
  • println — метод, который печатает строку и добавляет перенос строки после неё
  • "Hello, World!" — строковый литерал (текст в кавычках)
  • ; — точка с запятой завершает каждую инструкцию в Java

Есть ещё System.out.print() — без переноса строки. Разница:

System.out.print("Привет");
System.out.print("Мир");
// Вывод: ПриветМир

System.out.println("Привет");
System.out.println("Мир");
// Вывод:
// Привет
// Мир

Фигурные скобки и точки с запятой

{ } (фигурные скобки) обозначают блоки кода. У нас два блока: класс и метод:

public class HelloWorld {          // начало блока класса
    public static void main(String[] args) {   // начало блока метода
        System.out.println("Hello, World!");    // команда
    }                          // конец блока метода
}                              // конец блока класса

; (точка с запятой) — обязательный символ в конце каждой инструкции. Забыли точку — получите ошибку компиляции. Это как точка в предложении — без неё Java не поймёт, где заканчивается команда.

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

Есть два способа запустить нашу программу:

Способ 1: Через IntelliJ IDEA (рекомендуется)

Просто нажмите зелёный треугольник рядом с методом main (или нажмите Shift+F10). IntelliJ автоматически скомпилирует и запустит программу. Внизу откроется консоль с выводом:

Hello, World!

Process finished with exit code 0

exit code 0 означает, что программа завершилась успешно. Любое другое число — ошибка.

Способ 2: Через терминал (вручную)

Этот способ полезно знать, чтобы понимать, что происходит «под капотом»:

  1. Откройте терминал
  2. Перейдите в папку с файлом HelloWorld.java
  3. Скомпилируйте: javac HelloWorld.java
  4. Запустите: java HelloWorld
$ javac HelloWorld.java    # компиляция: .java → .class
$ java HelloWorld          # запуск: читает .class файл
Hello, World!

После компиляции в папке появится файл HelloWorld.class — это и есть байт-код, который выполняет JVM. Этот файл не нужно запускать через Java — его уже подготовил компилятор javac.

💡 Процесс: Java-код (.java) → Компилятор javac → Байт-код (.class) → JVM выполняет байт-код. IntelliJ делает всё это автоматически одним кликом.

❌ Что будет, если нет main?

Попробуйте удалить или переименовать метод main. Что произойдёт?

public class HelloWorld {
    public static void Main(String[] args) {   // Main с большой буквы!
        System.out.println("Hello, World!");
    }
}

Java выдаст ошибку:

错误: 主方法未找到在类 HelloWorld 中, 请定义主方法:
public static void main(String[] args)

Java чувствительна к регистру! main и Main — это разные имена. Метод должен называться именно main со строчной буквы.

Другие частые ошибки новичков:

Забыли точку с запятой

System.out.println("Hello")  // ошибка!
System.out.println("Hello"); // правильно

Фигурные скобки не совпадают

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    // нет закрывающей скобки!

Имя файла не совпадает с именем класса

// Файл: Main.java
public class HelloWorld {  // ошибка! имя класса должно быть Main

🏗️ Что такое class — кратко

Вы уже видели слово class в нашей программе. Что это значит? Представьте, что class — это рецепт. По рецепту можно испечь много тортов (объектов), но сам рецепт — это просто описание.

В Java всё существует в рамках классов. Каждый файл — это класс. Каждая переменная, каждый метод — часть какого-то класса. Это фундаментальный принцип Java, и мы полностью разберём его в Module 7 (ООП).

Пока просто запомните: каждая Java-программа — это класс. Каждый класс содержит метод main. Java запускает метод main — и программа работает.

public class ИмяКласса {          // объявление класса
    public static void main(String[] args) {   // точка входа
        // ваш код здесь
    }
}

🖨️ Несколько строк вывода

Давайте попробуем вывести несколько строк. Используйте несколько команд println:

public class MyFirstProgram {
    public static void main(String[] args) {
        System.out.println("Привет, мир!");
        System.out.println("Меня зовут Программист");
        System.out.println("Я учу Java");
    }
}

Вывод:

Привет, мир!
Меня зовут Программист
Я учу Java

Каждая команда println выводит свою строку и переносит курсор на новую строку. Порядок команд важен — они выполняются сверху вниз.

Можно также выводить числа:

System.out.println(42);
System.out.println(3.14);
System.out.println(true);

Вывод:

42
3.14
true

Заметьте: числа и логические значения пишутся БЕЗ кавычек. Кавычки используются только для строк (текста).

💡 Эксперимент: Попробуйте вывести на экран своё имя, возраст и город. Используйте три команды println. Запустите и проверьте результат!

🔗 Склейка строк (конкатенация)

Оператор + в Java используется не только для сложения чисел, но и для склейки строк:

public class ConcatDemo {
    public static void main(String[] args) {
        System.out.println("Привет" + ", мир!");
        System.out.println("Мне " + 25 + " лет");
        System.out.println("2 + 2 = " + (2 + 2));
    }
}

Вывод:

Привет, мир!
Мне 25 лет
2 + 2 = 4

В третьем примере обратите внимание на скобки (2 + 2). Без скобок Java сначала склеит строки, а потом попытается сложить — результат будет другим. Со скобками 2 + 2 вычисляется первым (= 4), а потом результат добавляется к строке.

💡 Важно: Когда оператор + встречает строку, он превращается в конкатенацию. "2 + 2 = " + 2 + 2 даст "2 + 2 = 22", потому что Java читает слева направо: сначала склеивает "2 + 2 = " и 2, потом результат и 2.

✅ Итоги урока

  • Каждая Java-программа — это класс с методом main
  • Метод main — точка входа в программу, именно с него Java начинает выполнение
  • System.out.println() — вывод текста на экран с переносом строки
  • Каждая инструкция заканчивается точкой с запятой ;
  • Фигурные скобки { } обозначают блоки кода (класс, метод)
  • Файл .java → компиляция javac → байт-код .class → JVM выполняет
  • Оператор + склеивает строки и складывает числа
  • Java чувствительна к регистру: main ≠ Main

Отлично! Теперь вы знаете, как работает Java-программа. Следующий урок: Переменные и константы →

Тест: Первые шаги

7 вопросов

Hello, World!

Premium