☕ Java

Введение: история, особенности, где применяется — Java

Что это и зачем?

Представь, что ты даёшь команды роботу. Ты говоришь: «Поверни налево, пройди 10 шагов, подними руку». Язык программирования — это такой же способ отдавать команды, только не роботу, а компьютеру. Java — один из самых популярных языков для этого.

Давай проведём аналогию. Представь, что ты строишь дом из конструктора LEGO. У тебя есть кубики разных цветов и размеров. Java — это такой «конструктор» для создания программ. В нём есть готовые детали (их называют классами и методами), из которых ты можешь собрать что угодно: от игры «Змейка» до приложения для заметок на телефоне.

А теперь представь, что ты учишь иностранный язык, например, английский. Сначала ты учишь слова (переменные), потом правила построения предложений (синтаксис), а потом можешь написать целое сочинение (программу). Java — это такой «английский» для компьютеров. Только вместо букв там используются специальные слова: public, class, static, void.

Почему Java, а не Python? Python — это как разговорный язык: простой и понятный. Java — как литературный: более строгий и формальный. В Java нужно писать больше слов, но зато компьютер точно поймёт, что ты хочешь. Например, в Python можно написать print("Привет"), и всё. В Java для этого нужно написать целую «обёртку»:

public class Main {
    public static void main(String[] args) {
        System.out.println("Привет");
    }
}

Выглядит сложнее? Да. Но зато такая программа будет работать на любом компьютере — хоть на Windows, хоть на Mac, хоть на Linux. Это называется «напиши один раз — запускай где угодно». Именно поэтому Java используют в банкоматах, в играх Minecraft, в приложениях для Android и даже в космических аппаратах!

Ещё одна важная особенность: Java — это объектно-ориентированный язык. Звучит страшно, но на самом деле это просто означает, что ты можешь создавать «чертежи» для вещей. Например, ты можешь сделать чертёж «Собака», а потом создать из него конкретных собак: Шарика, Бобика, Тузика. У каждой будут свои имя, возраст, цвет шерсти, но все они будут уметь лаять и вилять хвостом. В программировании это очень удобно.

Где применяется Java? Список огромный:

  • Веб-приложения — сайты вроде Amazon, eBay, LinkedIn написаны на Java.
  • Мобильные приложения — все приложения для Android (игры, соцсети, банки) пишутся на Java.
  • Игры — знаменитая игра Minecraft написана на Java.
  • Банковские системы — банкоматы, терминалы, онлайн-банкинг.
  • Научные программы — обработка данных, моделирование погоды.
  • Роботы и умные устройства — Java используется в «интернете вещей» (холодильники, чайники, лампочки).

Когда ты научишься программировать на Java, ты сможешь создавать свои собственные программы, игры и приложения. И это не так сложно, как кажется. Давай посмотрим на примеры!

Примеры кода с объяснением

Каждый пример мы будем подробно разбирать. Не бойся, если что-то непонятно — я объясню каждую строчку. Для начала запомни главное правило: в Java каждая команда заканчивается точкой с запятой (;). Это как точка в конце предложения.

Пример 1: «Привет, мир!» (самая простая программа)

// Это комментарий. Компьютер его игнорирует, он нужен для людей.
// Комментарии начинаются с двух косых черт.

public class HelloWorld {          // Объявляем класс с именем HelloWorld
    public static void main(String[] args) {  // Главный метод, с которого начинается программа
        // Выводим текст на экран
        System.out.println("Привет, мир!");   // Команда печати
    }  // Закрываем метод
}  // Закрываем класс

Разбор по строчкам:

  • public class HelloWorld — мы создаём «чертёж» (класс) с именем HelloWorld. Имя класса должно совпадать с именем файла (файл должен называться HelloWorld.java).
  • public static void main(String[] args) — это главная дверь, через которую программа начинает работать. Без этой строчки программа не запустится. Запомни эту магическую фразу — она всегда одинаковая.
  • System.out.println("Привет, мир!"); — команда, которая выводит текст в консоль (чёрное окошко с белыми буквами). Внутри кавычек пишем то, что хотим сказать.
  • Фигурные скобки {} — они показывают, где начинается и заканчивается блок кода. Представь, что это коробка: всё, что внутри, принадлежит классу или методу.

Как это запустить? Нужно установить Java на компьютер (скачать JDK), сохранить этот код в файл HelloWorld.java, открыть командную строку, написать javac HelloWorld.java (компиляция — перевод в машинный код), а потом java HelloWorld (запуск). Если всё сделано правильно, ты увидишь:

Привет, мир!

Пример 2: Математика — складываем числа

public class MathExample {
    public static void main(String[] args) {
        // Объявляем переменные — это как коробки, в которых хранятся числа
        int a = 5;           // int — целое число. В коробку 'a' кладём 5
        int b = 3;           // В коробку 'b' кладём 3
        int sum = a + b;     // Складываем содержимое коробок и кладём в новую коробку 'sum'
        
        // Выводим результат
        System.out.println("Сумма: " + sum);  // Знак + склеивает текст и число
        
        // Можно делать разные операции
        int difference = a - b;  // Вычитание
        int product = a * b;     // Умножение (звёздочка, не крестик!)
        int quotient = a / b;    // Деление (но только целая часть, так как числа целые)
        
        System.out.println("Разность: " + difference);
        System.out.println("Произведение: " + product);
        System.out.println("Частное: " + quotient);  // Будет 1, а не 1.666, потому что int
    }
}

Что здесь важно?

  • Переменная — это коробка с именем. В коробку можно положить число (или текст, или что-то ещё).
  • Перед именем переменной нужно написать её тип. int — целые числа. Есть ещё double (дробные числа), String (текст), boolean (правда/ложь).
  • Знак = — это не «равно» в математике, а команда «положить в коробку». Слева — имя коробки, справа — что кладём.
  • В Java, если разделить два целых числа, получится целое число (остаток отбрасывается). Если нужно получить дробь, используй double.

Сравнение с Python: В Python можно написать a = 5 и не указывать тип. Java требует указывать тип (int a = 5). Это строже, но зато компьютер точно знает, сколько места занимает переменная, и программа работает быстрее.

Пример 3: Условный оператор if (принимаем решения)

public class IfExample {
    public static void main(String[] args) {
        int age = 12;  // Возраст пользователя
        
        // Проверяем условие
        if (age >= 18) {  // Если возраст больше или равен 18
            System.out.println("Ты взрослый!");
        } else {          // Иначе (если условие не выполнилось)
            System.out.println("Ты ещё ребёнок!");
        }
        
        // Можно проверять несколько условий
        int temperature = 25;
        
        if (temperature > 30) {
            System.out.println("Очень жарко!");
        } else if (temperature > 20) {  // Ещё одна проверка
            System.out.println("Тепло!");
        } else {
            System.out.println("Прохладно!");
        }
    }
}

Как это работает? Компьютер проверяет условие в скобках. Если оно истинно (true), выполняется первый блок. Если ложно (false) — второй (или третий, если есть).

Операторы сравнения: > (больше), < (меньше), >= (больше или равно), <= (меньше или равно), == (равно — два знака равно!), != (не равно).

Важно! В Java = — это присваивание (положить в коробку), а == — это сравнение (проверить, равны ли значения). Не путай их! Это одна из самых частых ошибок.

Пример 4: Цикл for (повторяем действия)

public class LoopExample {
    public static void main(String[] args) {
        // Выведем числа от 1 до 5
        for (int i = 1; i <= 5; i++) {
            System.out.println("Число: " + i);
        }
        
        System.out.println("--- А теперь обратный отсчёт ---");
        
        // Обратный отсчёт от 5 до 1
        for (int i = 5; i >= 1; i--) {
            System.out.println("Обратный отсчёт: " + i);
        }
        
        System.out.println("ПУСК!");
    }
}

Разбор цикла for:

Цикл состоит из трёх частей в скобках, разделённых точкой с запятой:

  1. int i = 1 — создаём счётчик (переменную i) и даём ей начальное значение.
  2. i <= 5 — условие: пока i меньше или равно 5, цикл работает.
  3. i++ — что делать после каждого шага: увеличить i на 1 (i++ — это сокращение от i = i + 1).

Цикл выполняется так: сначала проверяется условие, если true — выполняется тело цикла (то, что в фигурных скобках), потом счётчик увеличивается, снова проверка... И так, пока условие не станет false.

Сравнение с Python: В Python цикл выглядит так: for i in range(1, 6):. В Java нужно явно писать начальное значение, условие и шаг. Это более гибко, но требует больше кода.

Пример 5: Массивы (списки элементов)

public class ArrayExample {
    public static void main(String[] args) {
        // Создаём массив из 5 целых чисел
        int[] numbers = new int[5];  // Массив на 5 элементов
        
        // Заполняем массив значениями
        numbers[0] = 10;  // Нумерация начинается с 0!
        numbers[1] = 20;
        numbers[2] = 30;
        numbers[3] = 40;
        numbers[4] = 50;
        
        // Выводим всё, что в массиве
        System.out.println("Первый элемент: " + numbers[0]);
        System.out.println("Второй элемент: " + numbers[1]);
        System.out.println("Последний элемент: " + numbers[4]);
        
        // Можно сразу объявить и заполнить массив
        String[] fruits = {"Яблоко", "Банан", "Апельсин", "Груша"};
        
        System.out.println("Мой любимый фрукт: " + fruits[2]);  // Апельсин (индекс 2 — это третий элемент)
        
        // Узнаём длину массива
        System.out.println("В массиве fruits " + fruits.length + " элементов");
        
        // Перебираем массив с помощью цикла
        for (int i = 0; i < fruits.length; i++) {
            System.out.println("Фрукт номер " + (i+1) + ": " + fruits[i]);
        }
    }
}

Что такое массив? Это как пронумерованные ячейки в шкафчике. В каждой ячейке лежит что-то одно. Номера начинаются с 0 (нулевая ячейка, первая, вторая...). Чтобы обратиться к ячейке, пишем имя массива и номер в квадратных скобках: fruits[2].

Важно! Если попытаться обратиться к ячейке с номером, которого нет (например, fruits[10]), программа «упадёт» с ошибкой. Это называется выход за границы массива.

Типичные ошибки

Даже опытные программисты делают ошибки. Вот список самых частых «ловушек» для новичков в Java:

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

int a = 5  // Ошибка! Нет точки с запятой
int b = 3; // Правильно

Компьютер скажет: «Ожидалась точка с запятой». Просто добавь ; в конце каждой команды.

2. Перепутал = и ==

int x = 5;
if (x = 10) {  // ОШИБКА! = это присваивание, а нужно == для сравнения
    System.out.println("x равен 10");
}
// Правильно:
if (x == 10) {
    System.out.println("x равен 10");
}

В Java = — это команда «положить», а == — «проверить, равно ли». Запомни: в условиях всегда используй ==.

3. Выход за границы массива

int[] arr = new int[3];  // Индексы: 0, 1, 2
arr[0] = 5;
arr[1] = 10;
arr[2] = 15;
arr[3] = 20;  // ОШИБКА! Индекс 3 не существует (массив от 0 до 2)

Всегда помни: