Java Курс

Java: переменные и типы данных

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

Урок 2: Переменные и типы данных в Java

Введение: Почему компьютеру нужна "память"?

Представь, что ты играешь в компьютерную игру. У твоего персонажа есть имя, количество жизней, уровень и количество золота. Где-то же компьютер должен всё это запоминать? Правильно — в переменных!

Переменная — это как коробка с наклейкой. На наклейке написано название (например, "здоровье"), а внутри коробки лежит значение (например, 100). Если персонаж получает урон, мы открываем коробку "здоровье" и кладём туда новое число — 80.

Но есть важное правило: в каждую коробку можно класть только определённые вещи. В коробку "имя" нельзя положить число, а в коробку "количество жизней" — текст. Эти правила называются типами данных.

Теория: Типы данных в Java

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

1. Целые числа (int)

int — самый популярный тип для целых чисел от -2 миллиардов до +2 миллиардов. Примеры: возраст, количество студентов, индекс массива.

2. Числа с дробной частью (double)

double — для чисел с плавающей точкой (дробей). Примеры: рост 1.75 метра, цена 99.99 рублей, средний балл 4.5.

3. Текст (String)

String — для строк текста. Всегда пишется в двойных кавычках " ". Примеры: имя "Анна", адрес "ул. Ленина, 5".

4. Логический тип (boolean)

boolean — может быть только true (истина) или false (ложь). Как выключатель: либо включено, либо выключено. Примеры: isGameOver, hasKey.

5. Одиночный символ (char)

char — один символ в одинарных кавычках ' '. Примеры: 'A', '7', '$'.

Важно! В Java есть и другие типы (byte, short, long, float), но на первых уроках мы будем использовать только эти пять. Они покрывают 99% задач новичка.

Как объявить переменную?

Чтобы создать переменную, нужно:

  1. Написать тип данных
  2. Придумать имя переменной
  3. Поставить знак = и написать значение
  4. Закончить строку точкой с запятой ;

Вот как это выглядит в коде:

// Объявляем переменную "возраст" типа int и кладём туда 15
int age = 15;

// Переменная "рост" типа double
double height = 1.68;

// Переменная "имя" типа String
String name = "Мария";

// Переменная "учится ли" типа boolean
boolean isStudent = true;

// Переменная "первая буква имени" типа char
char firstLetter = 'М';

После того как переменная объявлена, её можно использовать:

int age = 15;
System.out.println("Привет! Мне " + age + " лет.");

// Можно изменить значение:
age = 16; // Теперь age равно 16
System.out.println("Теперь мне " + age + " лет.");

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

В Java есть строгие правила для имён переменных. Запомни их как таблицу умножения:

  • Можно использовать: буквы (a-z, A-Z), цифры (0-9), символ подчёркивания (_) и знак доллара ($)
  • Нельзя начинать с цифры: 1player — ошибка, player1 — правильно
  • Нельзя использовать пробелы: my age — ошибка, myAge — правильно
  • Регистр важен: myAge и myage — разные переменные
  • Не используй зарезервированные слова: int, class, public и другие

Стиль именования (CamelCase)

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

  • playerHealth (здоровье игрока) — правильно
  • player_health — тоже можно, но не в стиле Java
  • PlayerHealth — так называют классы, а не переменные

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

Давай напишем программу, которая использует все основные типы данных:

public class MyFirstVariables {
    public static void main(String[] args) {
        
        // ========== ЦЕЛЫЕ ЧИСЛА ==========
        int lives = 3;          // Количество жизней в игре
        int score = 1500;       // Текущий счёт
        int level = 5;          // Уровень персонажа
        
        // ========== ДРОБНЫЕ ЧИСЛА ==========
        double health = 85.5;   // Здоровье в процентах (85.5%)
        double speed = 12.75;   // Скорость персонажа
        
        // ========== ТЕКСТ ==========
        String playerName = "Артём";       // Имя игрока
        String gameTitle = "Космические рейнджеры"; // Название игры
        
        // ========== ЛОГИКА ==========
        boolean isAlive = true;     // Жив ли персонаж?
        boolean hasKey = false;     // Есть ли ключ от двери?
        
        // ========== СИМВОЛЫ ==========
        char rank = 'A';            // Ранг игрока (A, B, C)
        char currency = '$';        // Валюта в игре
        
        // Теперь выведем всё на экран:
        System.out.println("=== ИГРОВОЙ ПРОФИЛЬ ===");
        System.out.println("Игрок: " + playerName);
        System.out.println("Игра: " + gameTitle);
        System.out.println("Уровень: " + level);
        System.out.println("Жизни: " + lives);
        System.out.println("Здоровье: " + health + "%");
        System.out.println("Счёт: " + score);
        System.out.println("Жив? " + isAlive);
        System.out.println("Ранг: " + rank);
        System.out.println("Валюта: " + currency);
    }
}

Математические операции с переменными

С числами можно делать всё, что на уроке математики:

int a = 10;
int b = 3;

int sum = a + b;      // 13 (сложение)
int diff = a - b;     // 7 (вычитание)
int product = a * b;  // 30 (умножение)
int quotient = a / b; // 3 (деление, но без остатка!)
int remainder = a % b; // 1 (остаток от деления)

System.out.println("Сумма: " + sum);
System.out.println("Разность: " + diff);
System.out.println("Произведение: " + product);
System.out.println("Частное: " + quotient);
System.out.println("Остаток: " + remainder);
Обрати внимание! Когда мы делим 10 на 3, получаем 3, а не 3.333. Потому что int хранит только целые числа. Если нужна дробная часть, используй double:
double x = 10.0;
double y = 3.0;
double result = x / y;  // 3.3333333333333335
System.out.println("Точное деление: " + result);

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

Строки можно складывать (это называется конкатенация):

String firstName = "Иван";
String lastName = "Петров";
String fullName = firstName + " " + lastName;  // "Иван Петров"
System.out.println("Полное имя: " + fullName);

// Можно смешивать строки и числа:
int age = 14;
String message = "Меня зовут " + firstName + ", мне " + age + " лет.";
System.out.println(message);

Практика: Разбираем реальный пример

Представь, что мы пишем программу для калькулятора пиццы. Нужно посчитать, сколько кусочков достанется каждому другу:

public class PizzaCalculator {
    public static void main(String[] args) {
        
        // Исходные данные:
        int totalSlices = 8;        // Кусочков в пицце
        int friends = 3;            // Сколько друзей?
        int mySlices = 2;           // Сколько хочу я?
        
        // Сколько останется друзьям?
        int slicesForFriends = totalSlices - mySlices;
        
        // Сколько кусочков каждому другу?
        int perFriend = slicesForFriends / friends;
        
        // Останется ли что-то?
        int remaining = slicesForFriends % friends;
        
        // Выводим результат:
        System.out.println("Всего кусочков: " + totalSlices);
        System.out.println("Я беру: " + mySlices);
        System.out.println("Друзьям остаётся: " + slicesForFriends);
        System.out.println("Каждому другу по: " + perFriend + " кусочка");
        System.out.println("Останется: " + remaining + " кусочек");
        
        // Проверяем, хватит ли всем:
        boolean enough = (perFriend > 0);
        System.out.println("Всем хватит? " + enough);
    }
}

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

Вот что чаще всего идёт не так:

  1. Забыли точку с запятой — самая частая ошибка! Каждая команда в Java заканчивается ;
  2. Не объявили переменную — нельзя написать age = 15;, если до этого не написали int age;
  3. Не тот тип — нельзя положить текст в int: int x = "привет"; — ошибка
  4. Имя с цифры — int 1player = 5; — так нельзя
  5. Путают = и == — = это присваивание, == это сравнение

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

Теперь твоя очередь! Попробуй выполнить эти задания. Если что-то не получается — перечитай урок ещё раз.

Задание 1: Анкета пользователя

Создай программу, которая хранит и выводит:

  • Имя (String)
  • Возраст (int)
  • Рост в метрах (double)
  • Любимый цвет (String)
  • Хобби (String)

Выведи всё в формате: "Привет! Меня зовут [имя], мне [возраст] лет. Мой рост [рост] м. Я люблю [цвет] и моё хобби — [хобби]."

Задание 2: Калькулятор покупок

У тебя есть 500 рублей. Ты купил:

  • Ручку за 45.50 руб
  • Тетрадь за 120 руб
  • Ластик за 25 руб

Посчитай:

  • Общую сумму покупки
  • Сколько денег осталось
  • Хватит ли оставшихся денег на шоколадку за 150 рублей (выведи true/false)

Задание 3: Игровой персонаж

Создай переменные для персонажа RPG-игры:

  • Имя персонажа
  • Уровень (int, начни с 1)
  • Здоровье (int, максимум 100)
  • Мана (int, максимум 50)
  • Класс (String: "Воин", "Маг" или "Лучник")
  • Есть ли особый навык (boolean)

Выведи красивую карточку персонажа.

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

Допустим, 1 доллар = 75 рублей. У тебя есть 50 долларов. Посчитай:

  • Сколько это рублей?
  • Если курс вырос до 78 рублей, сколько теперь?
  • На сколько рублей изменилась сумма?

Задание 5 (сложное): Школьный журнал

Создай программу, которая хранит оценки ученика по трём предметам:

  • Математика: 5, 4, 5, 3
  • Русский язык: 4, 4, 5, 5
  • Литература: 5, 5, 5, 4

Посчитай и выведи:

  • Средний балл по каждому предмету (используй double для точности)
  • Общий средний балл
  • Является ли ученик отличником (средний балл >= 4.5)?
Совет: Не пытайся сделать всё идеально с первого раза. Программирование — это пробы и ошибки. Если код не работает, прочитай сообщение об ошибке — оно часто подсказывает, что не так!

Итог урока

Сегодня мы узнали:

  • Переменные — это коробки для хранения данных
  • Типы данных — определяют, что можно хранить: int (числа), double (дроби), String (текст), boolean (да/нет), char (символ)
  • Объявление переменной: тип имя = значение;
  • Имена переменных — без пробелов, с маленькой буквы, в стиле camelCase
  • Операции: +, -, *, /, % для чисел и + для строк

На следующем уроке мы научимся принимать решения с помощью условных операторов if-else. А пока — практикуйся с переменными! Чем больше напишешь кода, тем быстрее запомнишь.

Удачи в программировании! 🚀