Java привлекает опытных разработчиков и начинающих программистов своей универсальностью. С его помощью можно писать код практически для всего, а сфер использования настолько много, что язык всегда остается в топе востребованных. В этой статье разберемся с основами Java и напишем свою первую программу.
Что такое Java?
Java — универсальный язык программирования, выпущенный в 1995 году компанией Sun Microsystems, которую в итоге купила корпорация Oracle. Ключевая особенность языка — он портативный и легко переносится на разные платформы. Java работает по принципу Write Once, Run Anywhere («Напиши один раз и запускай где угодно», или WORA). Такой код можно запускать на персональных компьютерах, серверах, бытовых устройствах и другой технике.
Появление Java оказало большое влияние на разработку современного ПО. К примеру, долгое время компания Google использовала его в качестве основного языка для разработки под Android, а Mojang написала на нем Minecraft. Сейчас Java используют в разработке бэкенда, десктопных и мобильных приложений, устройств для умного дома и финансовых инструментов.
Как установить Java?
Для программирования на Java понадобится Java Development Kit — специальный набор инструментов для разработчиков. В него входит компилятор, исполнительная среда, стандартная библиотека классов и все необходимое. Без этого пакета не получится собирать проекты на Java.
Для установки Java Development Kit необходимо:
- перейти на официальный сайт Oracle, найти пакет под свою операционную систему и скачать его;
- распаковать содержимое архива и запустить приложение;
- во время установки выбрать пункт «Development Tool»;
- дождаться завершения установки.
Теперь JDK установлен, но компьютер не знает, где находится папка и как к ней обращаться, поэтому подскажем ему. На Windows для этого надо:
- перейти в папку ProgramFiles\Java\версия-установленного-jdk\bin;
- кликнуть правой кнопкой мыши на любой файл в этой папке, перейти в «Свойства» и скопировать путь к нему;
- перейти в свойства ПК, кликнуть на вкладку «Дополнительно» и найти пункт «Переменные среды»;
- в окне создать переменную с названием PATH, а в поле значения вставить путь, который копировали ранее.
Теперь можно перезагрузить компьютер и проверить работоспособность установленного языка Java. Для этого надо запустить приложение «Командная строка» и ввести javac. Если все успешно, то Windows выведет аргументы команды.
Редакторы кода и IDE
Код удобнее писать в специальных редакторах и средах разработки (IDE). Они включают в себя удобные инструменты, облегчающие работу с Java и ускоряющие тестирование, отладку и рефакторинг. Рассмотрим самые популярные из них.
IntelliJ IDEA — интегрированная среда разработки от компании JetBrains. Поддерживает подсветку синтаксиса, автоматическое дополнение кода, запуск и отладку, тестирование, работу с базами данных, облачными сервисами развертывания и удаленной разработки. Возможности IDE можно расширять с помощью плагинов, которые загружаются из специального маркетплейса. Для разработки только на чистом Java можно воспользоваться бесплатной IntelliJ IDEA Community Edition, но если в проекте используются сторонние фреймворки и дополнительные технологии, то понадобится платная IntelliJ IDEA Ultimate.
Visual Studio Code — бесплатный кроссплатформенный редактор кода от Microsoft. Его нельзя назвать полноценной средой разработки, но с помощью расширений в VS Code можно добавить больше возможностей. В редакторе можно писать код, запускать его, отлаживать и тестировать. Поддерживаются подсветка синтаксиса и автоматическое дополнение. Visual Studio Code может стать полноценной заменой тяжелым и перегруженным IDE.
NetBeans — открытая среда разработки с поддержкой Java, JavaScript, PHP, HTML и CSS. Визуально выглядит проще конкурентов, но от этого не становится менее функциональной. В NetBeans есть все необходимое для работы с кодом, а если чего-то не хватает, то можно установить расширение.
Eclipse — еще одна полностью бесплатная среда разработки на Java с базовым набором инструментов. В ней может не быть удобных фич из IntelliJ IDEA, но все самое нужное в пакет входит. Кроме того, обновления Eclipse могут выходить чуть реже.
Основы Java
Java — довольно строгий язык, но его можно быстро освоить. Если до этого не было опыта в программировании, то за пару недель можно разобраться с базовым синтаксисом и уже начать практиковаться и создавать свои программы.
Структура кода в Java
Java создан с упором на ООП, поэтому в каждой программе должен быть хотя бы один класс, код из которого и будет выполняться. Также важно, чтобы в программе был метод main(), с которого запустится выполнение.
Еще из важных особенностей стоит упомянуть, что строки в Java необходимо отделять с помощью символа точки с запятой (;). В остальном синтаксис Java достаточно простой для освоения.
public class example { public static void main(String[] args) { } }
В этом фрагменте кода:
- public class example — определение класса;
- public static void main(String[] args) — точка входа в программу, с нее начинается выполнение кода.
Переменные и типы данных
Переменная в Java, как и в других языках программирования, — выделенная область памяти, адрес которой можно использовать для доступа к данным. Если упростить определение, то переменные можно представлять как коробки, в которые мы помещаем значения, а потом можем их брать из этих коробок или менять содержимое.
У каждой переменной есть свой тип, указывающий на данные, которое в ней можно хранить, и название. По названию к переменной можно обращаться из любого места программы.
Типы данных в Java | |
boolean | true или false |
byte | от -128 до 127 |
short | от -32768 до 32767 |
int | от -2 147 483 648 до 2 147 483 647 |
long | от -9 223 372 036 854 775 до 9 223 372 036 854 775 807 |
float | числа с плавающей точкой (0,452) |
double | большие числа с плавающей точкой |
char | символы (‘n’) |
Для записи переменной в Java сначала надо указать ее тип, потом имя и уже после через знак равенства присвоить значение. Это отличается от языков с динамической типизацией, когда язык сам определяет тип данных. К примеру, в Python можно просто указать имя и значение.
int number = 42; duoble double_number = 3.14; char char_a = 'a';
Операторы
Просто переменные практически бесполезны, если нет возможности взаимодействовать с ними и получать новые результаты. В Java есть несколько видов операторов, позволяющих работать со значениями: математические, условные и унарные.
Математические операторы необходимы для выполнения привычного сложения, умножения и других математических операций. С их помощью можно строить и более сложные логические конструкции, сравнивая и присваивая переменные.
int x = 20; int y = 10 System.out.println(x + y); >>> 30
Условные операторы, следуя из названия, поверяют некоторое условие и возвращают True или False. Некоторые из них нужны для организации логических выражений.
int x = 20; int y = 10 System.out.println(x == y); >>> False
Унарным операторам для работы нужен только один операнд, и это упрощает запись выражения. В Java предусмотрены операторы декремента (—) и инкремента (++). Первый уменьшает число на единицу, а второй — увеличивает.
int x = 20; System.out.println(++x); >>> 21
Условные операторы
Условные операторы в Java нужны для ветвления программы, когда надо выполнить ту или иную часть кода в зависимости от промежуточного результата. Для этого применяются операторы if и if—else.
Базовая конструкция условного оператора if выглядит так:
if (условие) { действие; }
Если условие в скобках оказывается верным, то выполняется содержимое оператора; в противном случае Java пропустит эту часть и пойдет дальше.
На примере это выглядит так:
if (2 * 2 == 4) { System.out.println('2 × 2 = 4'); }
Если два умноженное на два будет равно четырем, то программа напечатает на экране математическое выражение.
В некоторых случаях важно выполнить дополнительное действие, если первое условие оказывается ложным. Для этого применяется условный оператор if-else. Его базовая конструкция выглядит так:
if (условие) { действие 1; } else { действие 2; }
В случае верного условия Java выполнит первое действие, а если оно окажется ложным, то перейдет ко второму.
if (2 * 2 == 4) { System.out.println('2 × 2 = 4'); } else { System.out.println('Произошла ошибка''); }
Пишем первую программу
Теперь у нас есть все необходимые знания и навыки для разработки первой программы на Java. Традиционно ей становится печать на экране фразы «Hello, world!».
Сперва надо определить в программе класс, назовем его example:
public class example { }
Теперь в классе необходимо создать метод main, служащий точкой входа в программу:
public class example { public static void main(String[] args) { } }
В самом методе можно вывести строку «Hello, world!»:
public class example { public static void main(String[] args) { System.out.println("Привет, мир!"); } }
Если запустить выполнение кода, то в терминале появится наша строка. Теперь можно переходить к более сложным программам.
Угадай число
Воспользуемся всеми знаниями, полученными в этой статье, и напишем небольшую консольную игру «Угадай число». Ее суть заключается в том, что компьютер загадывает случайное число от одного до десяти, а пользователь должен его угадать. Игра завершается, как только число будет угадано.
Импортируем классы Random и Scanner, с помощью которых будем генерировать случайные числа и считывать данные из консоли. Сразу же после этого создадим класс GuessTheNumber и точку входа:
import java.util.Random; import java.util.Scanner; public class GuessTheNumber { public static void main(String[] args) { } }
Теперь можно создать новые объекты для Random и Scanner, а вместе с этим зададим параметры генерации чисел. Будем генерировать число от одного до десяти:
import java.util.Random; import java.util.Scanner; public class GuessTheNumber { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Random random = new Random(); int min = 1; int max = 10; int number = random.nextInt(max - min + 1) + min; } }
Представим сценарий, когда пользователь запускает нашу игру. Он еще не знает правила, поэтому выведем пару строк с описанием задачи:
System.out.println("Добро пожаловать в игру «Угадай число!»"); System.out.println("Я загадал число от 1 до 10. Попробуйте угадать.");
Теперь запустим цикл while(), который будет выполняться до тех пор, пока пользователь не угадает число. В цикле попросим ввести число и сразу же его считаем и поместим в переменную с помощью сканера:
while (true) { System.out.print("Введите вашу догадку: "); int guess = scanner.nextInt(); }
У нас уже есть загаданное число и догадка пользователя, и пришло время сравнить их. Для этого напишем несколько условий:
- пользователь угадал — выводим поздравление и выходим из цикла;
- число пользователя меньше — предлагаем попробовать вариант больше;
- число пользователя больше — предлагаем попробовать вариант меньше.
if (guess == number) { System.out.println("Поздравляем! Вы угадали число: " + number); break; // Игра завершается, если игрок угадал число } else if (guess < number) { System.out.println("Попробуйте больше."); } else { System.out.println("Попробуйте меньше."); }
В конце обязательно надо закрыть сканер, который мы запускали в начале:
scanner.close();
Весь код нашей игры выглядит так:
import java.util.Random; import java.util.Scanner; public class main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Random random = new Random(); int min = 1; int max = 10; int number = random.nextInt(max - min + 1) + min; System.out.println("Добро пожаловать в игру «Угадай число!»"); System.out.println("Я загадал число от 1 до 10. Попробуйте угадать."); while (true) { System.out.print("Введите вашу догадку: "); int guess = scanner.nextInt(); if (guess == number) { System.out.println("Поздравляем! Вы угадали число: " + number); break; // Игра завершается, если игрок угадал число } else if (guess < number) { System.out.println("Попробуйте больше."); } else { System.out.println("Попробуйте меньше."); } } scanner.close(); } }