Твоя первая программа на Java
С возвращением! ☕
В предыдущем уроке мы подготовили среду разработки:
- Java 25 LTS установлена;
- IntelliJ IDEA готова;
- наш проект существует;
- и, надеемся, пока ничего не взорвалось.
Теперь наконец пришло время сделать то, ради чего мы сюда пришли:
написать немного Java.
В этом уроке мы создадим нашу первую настоящую Java-программу:
public class Main {
public static void main(String[] args) {
System.out.println("Hello, InnoMarts!");
}
}
На первый взгляд это подозрительно много текста только ради того, чтобы вывести одну строку.
Не переживай.
К концу урока большая часть этого уже будет понятна.

Чему ты научишься
После этого урока ты будешь уметь:
- создавать Java-класс;
- писать первую полноценную Java-программу;
- запускать код в IntelliJ IDEA;
- понимать базовую структуру Java-класса;
- понимать, что такое
main(); - выводить текст в консоль;
- использовать
print()иprintln(); - распознавать Java-инструкции;
- понимать точку с запятой и фигурные скобки;
- добавлять комментарии;
- специально ломать программу;
- читать несколько типичных ошибок компилятора.
Да.
Ломать программу официально входит в план урока.
Добро пожаловать в программирование. 😄
1. Открой свой Java-проект
Запусти IntelliJ IDEA и открой проект, который мы создали в Уроке 1:
java-course
В панели Project ты должен увидеть что-то примерно такое:
java-course
└── src
Папка src — это место, где будет находиться наш исходный Java-код.
Теперь наконец нужно что-нибудь туда добавить.
2. Создай свой первый Java-класс
Нажми правой кнопкой мыши по папке src.
Выбери:
New → Java Class
Введи:
Main
и нажми Enter.
IntelliJ IDEA создаст файл:
Main.java
Внутри ты должен увидеть что-то подобное:
public class Main {
}
Поздравляю.
Ты только что создал свой первый Java-класс.
Пока он вообще ничего не делает.
Но не будем слишком быстро его осуждать.
Он существует всего около пяти секунд.
3. Что такое класс?
Java-программы строятся вокруг классов.
Пока можешь представлять класс как контейнер для связанного кода.
Позже в курсе мы будем создавать классы вроде:
User
Car
Product
BankAccount
Task
Order
А сегодня начнём с классического:
Main
Объявление нашего класса выглядит так:
public class Main {
}
Разберём его по частям.
public
Слово:
public
называется модификатором доступа.
Пока достаточно знать, что оно делает класс доступным из других частей программы.
К модификаторам доступа мы нормально вернёмся, когда дойдём до объектно-ориентированного программирования.
Так что не пытайся сегодня запомнить всю вселенную Java.
В голове и так уже открыто достаточно вкладок.
class
Ключевое слово:
class
говорит Java:
"Я создаю класс."
В Java есть много ключевых слов со специальным значением.
class — одно из них.
Main
Это имя нашего класса:
Main
Названия классов в Java обычно начинаются с заглавной буквы.
Например:
Main
User
Product
BankAccount
ShoppingCart
И здесь важный момент.
Java чувствительна к регистру.
То есть:
Main
main
MAIN
это три разных имени.
Java не смотрит на них и не думает:
"Ну почти одно и то же."
Java немного менее снисходительна, чем твои друзья.
4. Почему файл называется Main.java?
Наш файл называется:
Main.java
а внутри есть:
public class Main
Если top-level класс объявлен как public, имя файла должно совпадать с именем класса.
То есть:
public class Main
должно находиться в:
Main.java
А:
public class User
в:
User.java
И класс:
public class VeryImportantEnterpriseApplication
жил бы в файле:
VeryImportantEnterpriseApplication.java
Да.
Java любит правила.
И длинные имена.
Особенно длинные имена.
5. Добавь метод main()
Теперь измени файл так:
public class Main {
public static void main(String[] args) {
}
}
Самая важная новая строка:
public static void main(String[] args)
Это метод main.
В простой Java-программе именно отсюда начинается выполнение.
Можно представить его как входную дверь программы.
Когда Java спрашивает:
"С чего мне начать?"
мы показываем на:
main()
6. Страшный public static void main(String[] args)
Эта строка часто пугает новичков:
public static void main(String[] args)
Выглядит так, будто кто-то попытался запихнуть половину Java в одну строку.
Разберём её на части.
public
public
означает, что метод доступен извне класса.
Пока этого достаточно.
static
static
позволяет Java использовать этот метод без предварительного создания объекта класса Main.
До объектов мы ещё доберёмся.
Гораздо позже.
Пока запомни:
staticпозволяет Java начать прямо отсюда.
void
void
означает, что метод ничего не возвращает.
Позже мы будем создавать методы, которые возвращают, например:
42
"Hello"
true
объект User
Но main() ничего не возвращает.
Поэтому используем:
void
main
Это просто имя метода:
main
Java ожидает именно это имя для стандартной точки входа программы.
Обрати внимание на маленькую m.
Это:
main
и это:
Main
две разные вещи.
Одно — метод.
Другое — класс.
String[] args
В конце у нас есть:
String[] args
Это позволяет программе получать аргументы из командной строки.
Например, когда-нибудь мы сможем запустить:
java Main Viktor
и получить:
Viktor
внутри программы.
Пока аргументы командной строки нам не нужны.
Массивы тоже будут позже.
Поэтому сейчас просто запомни:
String[] argsявляется частью стандартного объявления методаmain().
И этого вполне достаточно.
Не будем пока вызывать дух официальной спецификации Java.
7. Пусть программа что-нибудь скажет
Программа уже может стартовать, но пока ничего не показывает.
Исправим это.
Добавь внутрь main():
System.out.println("Hello, InnoMarts!");
Полная программа должна выглядеть так:
public class Main {
public static void main(String[] args) {
System.out.println("Hello, InnoMarts!");
}
}
Это уже полностью рабочая Java-программа.
Маленькая?
Да.
Важная?
Тоже да.
Каждая большая программа начинается с маленьких частей.
Хотя надеемся, что твоё будущее банковское ПО будет делать немного больше, чем просто здороваться.
8. Запусти свою первую Java-программу
IntelliJ IDEA должна показать зелёную кнопку Run рядом с методом main().
Нажми её.
Также можно нажать правой кнопкой внутри редактора и выбрать:
Run 'Main.main()'
В нижней части IntelliJ IDEA появится окно Run.
Ты должен увидеть:
Hello, InnoMarts!
Это результат работы твоей программы.
Ты написал Java-код.
Java его скомпилировала.
JVM его выполнила.
И компьютер послушался.
Наслаждайся моментом.
Позже компьютер начнёт иметь собственное мнение.
9. Что делает System.out.println()?
Посмотрим на:
System.out.println("Hello, InnoMarts!");
Довольно много символов ради одного простого сообщения.
Разберём его на части.
System
System
это класс, который предоставляет Java.
Он содержит полезные функции, связанные со средой выполнения программы.
out
out
представляет стандартный поток вывода.
Для наших первых программ можешь представлять это просто как:
консоль
println
println
означает примерно:
вывести строку.
Он показывает текст, а затем переходит на новую строку.
То есть:
System.out.println("Hello!");
выведет:
Hello!
и переместит курсор ниже.
10. Выводим несколько строк
Сделаем программу немного более разговорчивой.
public class Main {
public static void main(String[] args) {
System.out.println("Hello!");
System.out.println("Welcome to Java.");
System.out.println("This is my first Java program.");
}
}
Запусти её.
Результат:
Hello!
Welcome to Java.
This is my first Java program.
Каждый println() выводит отдельную строку.
Просто.
Полезно.
И намного интереснее, чем пустой класс, молча смотрящий в пустоту.
11. print() против println()
В Java также есть:
System.out.print()
Обрати внимание: здесь нет:
ln
Сравним.
Используем print()
System.out.print("Hello ");
System.out.print("Java");
System.out.print("!");
Результат:
Hello Java!
Всё остаётся в одной строке.
Теперь попробуй:
System.out.println("Hello");
System.out.println("Java");
System.out.println("!");
Результат:
Hello
Java
!
Разница:
print() → остаётся в той же строке
println() → после вывода переходит на новую строку
Ты будешь использовать оба.
Но на первых уроках println() очень быстро станет твоим хорошим другом.
12. Что такое String?
Посмотри на:
"Hello, InnoMarts!"
Это String.
String представляет текст.
Например:
"Java"
"My name is Viktor"
"I need more coffee."
"Why is the compiler angry again?"
Всё это — Strings.
Текст в Java пишется в двойных кавычках:
" "
Позже мы посвятим String отдельный урок.
Пока запомни:
Если хочешь, чтобы Java воспринимала что-то как текст, обычно нужны двойные кавычки.
13. Что будет без кавычек?
Это работает:
System.out.println("Hello");
А теперь попробуй:
System.out.println(Hello);
IntelliJ начнёт жаловаться.
Почему?
Без кавычек Java думает, что:
Hello
это имя чего-то.
Может быть, переменной.
Может быть, поля.
Может быть, какой-то другой загадочной сущности, которую мы ещё не создали.
Java не может её найти — поэтому появляется ошибка.
Верни кавычки:
System.out.println("Hello");
и всё снова работает.
Насколько компилятор вообще может быть счастлив.
14. Что такое инструкция?
Эта строка:
System.out.println("Hello!");
является Java-инструкцией.
Инструкция — это команда программе:
Сделай это.
Например:
System.out.println("One");
System.out.println("Two");
System.out.println("Three");
это три инструкции.
Java выполняет их сверху вниз.
Поэтому результат будет:
One
Two
Three
а не:
Three
One
Banana
Two
Компьютеры удивительно предсказуемы, когда код правильный.
15. Точка с запятой ;
Посмотри на:
System.out.println("Hello");
Обрати внимание на:
;
В Java многие инструкции заканчиваются точкой с запятой.
Можно представить её как точку в конце предложения.
А теперь удали её:
System.out.println("Hello")
IntelliJ сразу должна показать проблему.
Попробуй запустить программу.
Ты можешь увидеть ошибку:
';' expected
Java как будто спрашивает:
"Извини, ты уже закончил эту инструкцию?"
Верни точку с запятой:
System.out.println("Hello");
и всё снова работает.
16. Фигурные скобки { }
В нашей программе есть фигурные скобки:
{
}
Они определяют блоки кода.
Например:
public class Main {
}
эти скобки содержат всё, что относится к классу.
Внутри класса есть:
public static void main(String[] args) {
}
эти скобки содержат всё, что относится к main().
Структурно это выглядит так:
Класс Main
{
метод main
{
инструкции
}
}
Блоки внутри других блоков будут встречаться в Java постоянно.
17. Отступы важны — для людей
Технически даже такой код может быть правильным:
public class Main {
public static void main(String[] args) {
System.out.println("Hello");
}
}
Java его поймёт.
Человек тоже, технически, сможет.
Но он будет не очень рад.
Лучше так:
public class Main {
public static void main(String[] args) {
System.out.println("Hello");
}
}
Отступы делают структуру понятной.
IntelliJ IDEA может форматировать код автоматически.
На многих системах сочетание:
Ctrl + Alt + L
форматирует текущий файл.
Попробуй.
Смотреть, как кривой код внезапно становится аккуратным, странно приятно.
18. Комментарии
Иногда мы хотим оставить заметку внутри кода.
Java должна её игнорировать.
Человек должен её прочитать.
Для этого существуют комментарии.
Однострочные комментарии
Однострочный комментарий начинается с:
//
Например:
public class Main {
public static void main(String[] args) {
// Вывести приветствие
System.out.println("Hello, InnoMarts!");
}
}
Java игнорирует:
// Вывести приветствие
Многострочные комментарии
Можно писать комментарии на несколько строк:
/*
Это комментарий.
Java игнорирует весь этот текст.
Даже это предложение.
*/
Например:
public class Main {
public static void main(String[] args) {
/*
Это наша первая Java-программа.
Скоро она станет интереснее.
*/
System.out.println("Hello, InnoMarts!");
}
}
Комментарии полезны.
Но не нужно объяснять абсолютно очевидные вещи.
Вот это:
// Вывести Hello
System.out.println("Hello");
почти ничего не добавляет.
Хорошие комментарии чаще объясняют почему, а не просто что делает код.
19. Давай специально всё сломаем 💥
Теперь важный навык программиста:
намеренно ломать вещи.
Звучит странно.
Но если ты сам создашь ошибку, позже будет намного легче её узнать.
Ошибка 1 — Удали точку с запятой
Было:
System.out.println("Hello");
Удали:
;
и получим:
System.out.println("Hello")
Посмотри, что покажет IntelliJ.
Попробуй запустить программу.
Потом исправь ошибку.
Ошибка 2 — Напиши system вместо System
Попробуй:
system.out.println("Hello");
Java чувствительна к регистру.
Поэтому:
System
и:
system
это разные имена.
Исправь:
System.out.println("Hello");
Ошибка 3 — Забудь кавычку
Попробуй:
System.out.println("Hello);
Теперь Java не понимает, где заканчивается String.
Исправь:
System.out.println("Hello");
Ошибка 4 — Удали фигурную скобку
Удали одну:
}
из программы.
Может внезапно появиться много ошибок.
И это важный урок:
Одна ошибка может создать много сообщений об ошибках.
Если IntelliJ показывает 12 проблем, это не обязательно означает, что ты сделал 12 разных ошибок.
Иногда просто не хватает одной скобки, и Java потеряла структуру программы.
Всегда начинай с первой ошибки.
20. Ошибки компилятора полезны
Новичок часто видит красный текст и думает:
"Я всё уничтожил."
Обычно нет.
Компилятор пытается помочь.
Например:
';' expected
это уже очень полезная подсказка.
Java ожидала:
;
но не нашла её.
Ошибка не говорит:
"Ты ужасно программируешь."
Она скорее говорит:
"Я запуталась именно здесь. Проверь это место."
Умение читать сообщения компилятора — один из самых важных навыков программиста.
21. Твоя первая персонализированная программа
Теперь измени программу так, чтобы она рассказывала что-нибудь о тебе.
Например:
public class Main {
public static void main(String[] args) {
System.out.println("My name is Viktor.");
System.out.println("I am learning Java.");
System.out.println("I use IntelliJ IDEA.");
System.out.println("My code has not exploded yet.");
}
}
Используй своё имя и свои фразы.
Если тебя действительно зовут Viktor — можешь немного сэкономить на наборе текста. 😄
🎯 Задание 1 — Developer Card
Создай программу, которая выведет:
========================
DEVELOPER CARD
========================
Name: Viktor
Language: Java
IDE: IntelliJ IDEA
Level: Beginner
Goal: Build real projects
========================
Используй несколько:
System.out.println()
Попробуй написать всю программу самостоятельно.
🎯 Задание 2 — print() + println()
Попробуй получить точно такой результат:
Hello, Java!
Let's build something.
Но в своём решении используй и:
System.out.print()
и:
System.out.println()
Правильных вариантов может быть несколько.
Экспериментируй.
🎯 Задание 3 — Предскажи результат
Посмотри на код:
public class Main {
public static void main(String[] args) {
System.out.print("Java ");
System.out.print("is ");
System.out.println("fun!");
System.out.println("Let's continue.");
}
}
Прежде чем нажать Run, попробуй точно предсказать результат.
Потом запусти программу и сравни.
Это очень полезная привычка.
Вместо того чтобы всегда спрашивать:
"Что сделал компьютер?"
начинай спрашивать:
"Что я ожидаю от компьютера?"
Небольшое изменение, но это большой шаг в сторону мышления программиста.
22. Посмотрим на всю программу ещё раз
Наша исходная программа выглядела так:
public class Main {
public static void main(String[] args) {
System.out.println("Hello, InnoMarts!");
}
}
В начале урока она казалась загадочной.
Теперь мы уже понимаем довольно много.
public class Main
создаёт класс Main.
public static void main(String[] args)
определяет точку входа программы.
System.out.println(...)
выводит что-то в консоль.
"Hello, InnoMarts!"
это String.
;
завершает инструкцию.
А:
{ }
определяют блоки кода.
Неплохо для Урока 2.
🎓 Чему ты научился
В этом уроке ты узнал:
- как создать Java-класс;
- почему класс хранится в
Main.java; - что означает ключевое слово
class; - почему Java чувствительна к регистру;
- что такое метод
main(); - базовое значение
public,staticиvoid; - для чего используется
String[] args; - как выводить текст через
System.out.println(); - чем
print()отличается отprintln(); - что такое String;
- что такое инструкция;
- зачем Java использует точку с запятой;
- для чего нужны фигурные скобки;
- почему отступы важны;
- как работают комментарии;
- как специально создавать и исправлять базовые ошибки.
Самое главное:
Теперь ты можешь самостоятельно создать, запустить, изменить, сломать и исправить простую Java-программу. ☕
Это уже настоящий прогресс.
Что дальше?
Мы уже умеем писать Java-код.
Но за кулисами всё ещё происходит кое-что важное.
Когда ты нажимаешь:
Run
как:
Main.java
превращается в запущенную программу?
Что на самом деле создаёт Java-компилятор?
Что такое bytecode?
Что именно делает JVM?
И почему одна и та же Java-программа может работать на Windows, Linux и macOS?
Именно это мы разберём в следующем уроке.