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. Первая программа

Процесс создания программы можно разделить на три этапа:

  1. написание

  2. компиляция

  3. запуск

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).