1. Структура программы
Для того чтобы создать простое приложение на Java необходим текстовый редактор для набора кода программы, например:
-
Vi/Vim/Nano (for UNIX-like OS)
-
Notepad (for Windows)
Warning
|
Microsoft Word - это не текстовый редактор, а текстовый процессор. |
Рассмотрим пример простой программы на Java:
import java.io.Console; // подключение используемых в программе внешних пакетов
public class Program { // объявление нового класса
public static void main(String[] args) { // объявление нового метода
String name; // переменная для имени
Console con = System.console(); // получаем объект консоли для считывания с консоли
name = con.readLine("Введите свое имя: "); // считываем введенное значение
System.out.println("Добро пожаловать, " + name); // выводим данную запись поток вывода
} // конец объявления нового метода
} // конец объявления нового класса
1.1. Область подключения внешних пакетов
В начале файла идет секция с подключенными внешними пакетами с помощью директивы import
, после которой идут названия подключаемых пакетов и классов. Пакеты представляют собой организацию классов и интерфейсов в общие группы или блоки.
1.2. Область написания кода
И так как язык Java имеет С-подобный синтаксис:
-
Каждая строка завершается точкой с запятой, а каждый блок кода помещается в фигурные скобки.
-
Далее идет определение класса программа. Классы объявляются следующим способом:
-
идет модификатор доступа
public
, который указывает, что данный класс будет доступен всем, то есть его можно запустить из командной строки -
далее идет ключевое слово
class
-
название класса
-
блок самого класса в фигурных скобках
-
Классы являются теми кирпичиками, из которых состоит программа на Java. Особо следует остановиться на именах классов. Имена классов, а также их методов и переменных, еще называют идентификаторами. Идентификаторы представляют произвольную последовательность алфавитных и цифровых символов, а также символа подчеркивания, однако при этом:
-
названия не должны начинаться с цифры.
-
не должны представлять зарезервированные ключевые слова, например такие, как
class
илиint
и т.д.
Класс может содержать различные переменные и методы. В данном случае у нас объявлен один метод main()
. Как и в многих других C-подобных языках в программе на Java метод main()
является входной точкой программы, с него начинается все управление. Он обязательно должен присутствовать в программе.
Метод main()
также имеет модификатор public
. Слово static
указывает, что метод main()
— статический, а слово void
— что он не возвращает никакого значения.
Далее в скобках идут параметры метода — String args[]
— это массив args
, который хранит значения типа String
, то есть строки. В данном случае они пока не нужны, но в реальной программе это те строковые параметры, которые передаются при запуске программы из командной строки.
Блок метода main()
содержит код программы. Вначале объявляется переменная name
, которая будет хранить строку, то есть объект типа String
: String name
. Java, как и другие С-подобные языки, является регистрозависимым, поэтому следующие два объявления целочисленных переменных String name
и String Name
будут обозначать две разных переменных.
Далее идет создание переменной консоли, которая позволит взаимодействовать с консолью: Console con = System.console();
. Так как класс Console
находится в библиотеке классов в пакете java.io
, то в начале файла подключается этот класс директивой импорта import java.io.Console
Затем с помощью метода con.readLine()
выводится приглашение к вводу имени и ожидается, пока пользователь не введет имя. Так как данный метод возвращает введенное пользователем значение, то его можно присвоить переменной name
.
И в конце введенное имя выводится на экран с помощью класса System
и метода println()
. Хотя System
, как и Scanner
, является классом, размещенном в одном из пакетов, но его не нужно подключать с помощью директивы импорта. Так как System
находится в пакете java.lang
, все классы которого автоматически подключаются в программу.
Кроме собственно кода программы здесь использованы пояснения к коду или комментарии. Для создания однострочного комментария используется двойной slash //
. При компиляции программы все комментарии игнорируются и служат лишь для пояснения действий программисту.
2. Первая программа
Процесс создания программы можно разделить на три этапа:
-
написание
-
компиляция
-
запуск
2.1. Написание
Для написания используется текстовый редактор или IDE (integrated development environment).
public class HellInWorld {
public static void main(String[] args) {
System.out.println("Hell in the World!");
}
}
Сохранить программу в файл под названием HellInWorld.java
, где Java — расширение файла, так как файл, содержащий public class
должен называться так же, как и сам класс — в нашем случае HellInWorld
.
Warning
|
Следующие шаги в OS Windows не сработают, так как нужно добавить путь к JDK в переменную PATH в переменных среды |
2.2. Компиляция
После написания нужно скомпилировать программу, т.е. преобразовать Java-код в byte-код, с которым может работать JVM. Откроем terminal в Linux/MacOS (или PowerShell/командную строку в Windows) и с его помощью сделаем следующие шаги:
-
перейти в directory, где лежит наш файл с программой с помощью команды
cd путь_к_файлу
-
скомпилировать программу, с помощью команды
javac HellInWorld.java
-
проверить наличие скомпилированной программы в directory, с помощью команды
dir
можно убедиться в наличииHellInWorld.class
- скомпилированная программа
2.3. Запуск
После компиляции программа запускается с помощью команды java HellInWorld
. После запуска в terminal отобразится текст, который выводится в данной программе.
Note
|
Начиная с Java 11 появилась возможность запуска однофайловых программ с исходным кодом без предварительной компиляции (JEP-330). |