Java Курс

Введение в Java

Самоучитель Python 3, собранный из материалов данного сайта.Предназначен в основном для тех, кто хочет изучить язык программирования Python с нуля.

Введение в Java: Первое знакомство с миром программирования

Привет, будущий программист! Сегодня мы начинаем наше увлекательное путешествие в мир Java. Представь, что ты учишься разговаривать на новом языке — языке компьютеров. Как и в любом языке, у нас будут свои слова (команды), грамматика (правила написания кода) и даже свои шутки (комментарии в коде).

Java — это один из самых популярных языков программирования в мире. На нём написаны:

  • Мобильные приложения для Android (твои любимые игры!)
  • Серверы крупных сайтов (например, Amazon, LinkedIn)
  • Программы для банкоматов и космических аппаратов
  • И даже системы управления роботами!

Почему Java так популярен? Представь, что ты написал программу на своём компьютере. С Java она будет работать на любом другом компьютере, телефоне или даже холодильнике с умной начинкой! Это как если бы ты написал письмо на русском, и его поняли бы во всём мире без перевода.

Что такое программа?

Программа — это набор инструкций для компьютера. Как рецепт пиццы: сначала берём тесто, потом добавляем соус, сыр, колбасу... Только вместо продуктов у нас команды, а вместо пиццы — работающая программа.

Вот как выглядит самая простая программа на Java:

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

Давай разберём каждую строчку, как конструктор Лего:

  1. public class MyFirstProgram — создаём коробку (класс) с именем MyFirstProgram. В этой коробке будут храниться все наши инструкции.
  2. public static void main(String[] args) — это как кнопка "ВКЛ" на пульте. Когда программа запускается, она ищет эту кнопку и начинает выполнять команды внутри неё.
  3. System.out.println — команда "НАПЕЧАТАЙ". Всё, что в скобках, появится на экране.
  4. "; — точка с запятой в конце каждой команды. Как точка в конце предложения.

Переменные: коробки для данных

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

У каждой переменной есть три характеристики:

  1. Имя — как наклейка на коробке (например, "мойВозраст")
  2. Тип — что можно хранить (числа, буквы, правда/ложь)
  3. Значение — что внутри коробки (например, 15)

В Java есть несколько основных типов переменных:

Тип Что хранит Пример
int Целые числа 5, -3, 1000
double Дробные числа 3.14, -0.5, 2.718
String Текст (слова) "Привет", "Java", "123"
boolean Правда или ложь true, false

Вот как создавать переменные:

public class VariablesExample {
    public static void main(String[] args) {
        // Создаём переменную с именем age (возраст) типа int
        int age; // Пока коробка пустая
        age = 15; // Кладём значение 15 в коробку
        
        // Можно сразу создать и заполнить
        String name = "Анна"; // Текст всегда в кавычках
        double height = 1.65; // Дробная часть через точку
        boolean isStudent = true; // Правда или ложь
        
        // Выводим значения на экран
        System.out.println("Имя: " + name);
        System.out.println("Возраст: " + age);
        System.out.println("Рост: " + height + " м");
        System.out.println("Ученик: " + isStudent);
        
        // Меняем значение переменной
        age = 16; // Теперь возраст стал 16
        System.out.println("Через год возраст: " + age);
    }
}

Правила именования переменных

Чтобы другие программисты (и ты сам через неделю) понимали твой код, нужно соблюдать правила:

  • Имя должно быть понятным: studentAge лучше, чем sa
  • Начинается с маленькой буквы: myName, а не MyName
  • Каждое новое слово с большой буквы: myFavoriteColor (это называется camelCase — верблюжья нотация)
  • Только буквы, цифры и подчёркивание: user_name можно, user-name нельзя
  • Цифры не в начале: var1 можно, 1var нельзя

Арифметические операции

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

public class MathOperations {
    public static void main(String[] args) {
        int a = 10;
        int b = 3;
        
        // Сложение
        int sum = a + b;
        System.out.println(a + " + " + b + " = " + sum);
        
        // Вычитание
        int difference = a - b;
        System.out.println(a + " - " + b + " = " + difference);
        
        // Умножение
        int product = a * b;
        System.out.println(a + " * " + b + " = " + product);
        
        // Деление (целочисленное)
        int quotient = a / b; // Результат: 3, потому что 10 / 3 = 3 целых
        System.out.println(a + " / " + b + " = " + quotient);
        
        // Остаток от деления
        int remainder = a % b; // 10 - 3*3 = 1
        System.out.println(a + " % " + b + " = " + remainder);
        
        // Деление с дробной частью
        double c = 10.0;
        double d = 3.0;
        double division = c / d; // Результат: 3.333...
        System.out.println(c + " / " + d + " = " + division);
    }
}

Обрати внимание: когда мы делим целые числа (int), результат тоже целый. Остаток от деления — это то, что не поместилось. Например, 10 яблок разделить на 3 друзей — каждый получит по 3 яблока (quotient), и 1 яблоко останется (remainder).

Конкатенация строк (склеивание текста)

Строки можно соединять друг с другом и с числами. Это называется конкатенация:

public class StringConcat {
    public static void main(String[] args) {
        String greeting = "Привет";
        String name = "Максим";
        
        // Склеиваем строки через +
        String message = greeting + ", " + name + "!";
        System.out.println(message); // Выведет: Привет, Максим!
        
        // Можно склеивать строки и числа
        int age = 14;
        String info = "Тебе " + age + " лет";
        System.out.println(info); // Выведет: Тебе 14 лет
        
        // Обрати внимание: "5" + 5 = "55" (строка), а 5 + 5 = 10 (число)
        System.out.println("5" + 5); // "55"
        System.out.println(5 + 5);   // 10
    }
}

Ввод данных с клавиатуры

Программа становится интереснее, когда она может общаться с пользователем. Для этого используется специальный объект Scanner:

import java.util.Scanner; // Говорим Java, что будем использовать сканер

public class UserInput {
    public static void main(String[] args) {
        // Создаём сканер для чтения с клавиатуры
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("Как тебя зовут?");
        String name = scanner.nextLine(); // Читаем строку
        
        System.out.println("Сколько тебе лет?");
        int age = scanner.nextInt(); // Читаем число
        
        System.out.println("Привет, " + name + "!");
        System.out.println("Через 5 лет тебе будет " + (age + 5) + " лет.");
        
        // Важно закрыть сканер после использования
        scanner.close();
    }
}

Разберём, что здесь происходит:

  • import java.util.Scanner; — импорт класса Scanner (как библиотека книг)
  • Scanner scanner = new Scanner(System.in); — создаём объект scanner, который будет читать из системного ввода (клавиатуры)
  • scanner.nextLine() — ждёт, пока пользователь введёт текст и нажмёт Enter
  • scanner.nextInt() — ждёт ввода целого числа
  • scanner.close() — закрываем сканер (как закрываем книгу после чтения)

Условные операторы if-else

В жизни мы постоянно принимаем решения: "Если дождь, беру зонт, иначе — иду без зонта". В Java тоже есть такие конструкции:

import java.util.Scanner;

public class ConditionalExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("Введите свой возраст:");
        int age = scanner.nextInt();
        
        // Проверяем условие
        if (age >= 18) {
            System.out.println("Ты совершеннолетний!");
        } else {
            System.out.println("Ты ещё несовершеннолетний.");
        }
        
        // Можно проверять несколько условий
        System.out.println("Введите оценку (от 1 до 5):");
        int grade = scanner.nextInt();
        
        if (grade == 5) {
            System.out.println("Отлично! Ты молодец!");
        } else if (grade == 4) {
            System.out.println("Хорошо, но можно лучше.");
        } else if (grade == 3) {
            System.out.println("Удовлетворительно, нужно подтянуть.");
        } else {
            System.out.println("Плохо, нужно больше заниматься.");
        }
        
        scanner.close();
    }
}

Операторы сравнения, которые мы используем:

  • == — равно (внимание: два знака равно!)
  • != — не равно
  • > — больше
  • < — меньше
  • >= — больше или равно
  • <= — меньше или равно

Логические операторы

Иногда нужно проверить несколько условий одновременно:

import java.util.Scanner;

public class LogicalOperators {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("Введите температуру на улице:");
        int temperature = scanner.nextInt();
        
        // && - И (оба условия должны быть истинны)
        if (temperature > 0 && temperature < 30) {
            System.out.println("На улице комфортно!");
        }
        
        // || - ИЛИ (хотя бы одно условие истинно)
        if (temperature < -10 || temperature > 35) {
            System.out.println("Лучше остаться дома!");
        }
        
        // ! - НЕ (отрицание)
        boolean isRaining = false;
        if (!isRaining) {
            System.out.println("Можно идти гулять, дождя нет.");
        }
        
        scanner.close();
    }
}

Комментарии в коде

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

public class CommentsExample {
    public static void main(String[] args) {
        // Однострочный комментарий - начинается с двух слешей
        
        /*
         * Многострочный комментарий
         * Можно писать на нескольких строках
         * Удобно для подробных объяснений
         */
        
        /**
         * Javadoc комментарий - специальный комментарий
         * для создания документации
         */
        System.out.println("Комментарии не влияют на работу программы!");
    }
}

Частые ошибки новичков

Вот что чаще всего идёт не так у начинающих программистов:

  1. Забыл точку с запятой — каждая команда должна заканчиваться ;
  2. Неправильные кавычки — строки только в двойных кавычках " "
  3. Путаница с = и == — = присваивает значение, == сравнивает
  4. Не закрыл фигурные скобки — каждой { должна соответствовать }
  5. Имена переменных с большой буквы — классы с большой, переменные с маленькой
  6. Забыл импортировать Scanner — без import java.util.Scanner; он не работает

Практические задания

Теперь твоя очередь! Попробуй решить эти задачи самостоятельно. Не бойся ошибаться — ошибки это часть обучения.

Задание 1: Калькулятор возраста

Напиши программу, которая:

  • Спрашивает у пользователя год рождения
  • Вычисляет его возраст (текущий год — 2025)
  • Выводит: "Тебе X лет. Через 10 лет будет Y лет."
// Подсказка: начни так
import java.util.Scanner;

public class AgeCalculator {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        // ... твой код здесь
        scanner.close();
    }
}

Задание 2: Проверка пароля

Создай программу, которая:

  • Запрашивает у пользователя пароль
  • Если пароль равен "java123", выводит "Доступ разрешён!"
  • Иначе выводит "Неверный пароль!"
  • Дополнительно: если пароль короче 5 символов, выводит "Слишком короткий пароль"

Задание 3: Конвертер валют

Напиши программу для конвертации рублей в доллары:

  • Спрашивает сумму в рублях
  • Спрашивает курс доллара (например, 90.5)
  • Вычисляет сумму в долларах (рубли / курс)
  • Выводит: "X рублей = Y долларов"
  • Если сумма больше 1000 долларов, добавить "Это крупная сумма!"

Совет: Не пытайся написать всю программу сразу. Разбей задачу на маленькие шаги:

  1. Сначала добейся, чтобы программа просто что-то выводила
  2. Потом добавь ввод данных
  3. Потом вычисления
  4. И только потом условия

Поздравляю! Ты сделал первый шаг в мир Java. В следующем уроке мы узнаем о циклах (как заставить компьютер повторять действия), массивах (как хранить много данных) и создании своих методов (как не повторять один и тот же код).

Помни: каждый великий программист начинал с "Привет, мир!". Практикуйся каждый день хотя бы по 30 минут, и скоро ты будешь писать свои собственные игры и приложения!