Поиск по сайту:

Как написать свою первую программу на Java


Автор выбрал программу Write for DOnations.

Введение

Java — это зрелый и хорошо продуманный язык программирования с широким спектром применения, от изучения в классе до запуска коммерческих приложений любого размера. Одним из его уникальных преимуществ является то, что он является кросс-платформенным: после создания программы Java вы можете запускать ее во многих операционных системах, включая серверы (Linux/Unix), настольные (Windows, macOS, Linux) и мобильные операционные системы. (Андроид, iOS).

Java достигает высокой производительности, поскольку выполняет скомпилированный (то есть машинно-оптимизированный) код. Для разработчиков это означает, что вы должны скомпилировать его исходный код, прежде чем сможете его запустить. Если вы привыкли к таким языкам, как PHP и Python, которые позволяют выполнять исходный код напрямую, то компиляция кода станет новым шагом в процессе разработки.

В этом уроке вы создадите \Hello, World! программа на Java. Программа \Hello, World! Программа является классической и проверенной временем традицией компьютерного программирования. Это полная первая программа для начинающих, и это хороший способ убедиться, что ваша среда настроена правильно. Создав программу «Hello, World», вы начнете изучать базовый синтаксис Java, а также процесс компиляции и выполнения программы Java. Когда вы закончите, вы сможете писать и запускать базовый код Java. .

Предпосылки

Для этого урока вам понадобятся:

  • На вашем компьютере установлена Java (версия 11 или выше). Для Ubuntu и Debian выполните шаги для варианта 1 в нашем руководстве, загрузите варианты установки Java.
  • Компилятор, входящий в комплект Java Development Kit (JDK). Для компиляции исходного кода вы будете использовать компилятор Java по умолчанию, который называется javac. Вы можете скомпилировать свой исходный код либо на своем локальном компьютере, либо на удаленном сервере в облаке. Для Ubuntu вы можете следовать инструкциям по установке JDK в Варианте 1 из официальных инструкций по установке OpnJDK версии 11 или выше.
    • (Необязательно) Среда выполнения Java (JRE), которая будет выполнять скомпилированный код. JRE является частью JDK, поэтому вам не нужно устанавливать ее дополнительно, если вы уже установили JDK. В противном случае вы можете установить JRE отдельно. Это может быть полезно, если вы собираетесь запускать свой код на удаленном сервере, где вы не хотите компилировать код из соображений безопасности. В таком сценарии, ориентированном на сервер, вы можете загрузить и установить JRE через встроенный менеджер пакетов. Для Ubuntu и Debian используйте sudo apt install openjdk-11-jre. Для других дистрибутивов используйте соответствующие менеджеры пакетов, выполните поиск по ключевому слову jre и выберите версию 11 или более позднюю.

    Написание и выполнение «Hello, World!» Программа на Java

    Для многих людей их первая Java-программа часто оказывается и последней Java-программой. Проблема в том, что даже самый простой код кажется слишком сложным, и вам придется изучить немало новых вещей, чтобы полностью его понять. Чтобы избежать этой распространенной ловушки, вы начнете с написания кода, запускаете его, а затем смотрите, как он работает.

    Для начала создайте новый каталог с именем hello-world, в который поместите код для этого руководства. Чтобы создать каталог проекта и перейти в него, выполните в терминале следующие команды:

    1. mkdir hello-world
    2. cd hello-world

    Затем с помощью nano или вашего любимого текстового редактора создайте файл с именем Hello.java. Для nano используйте следующую команду:

    1. nano Hello.java

    Добавьте в файл следующий код. Это минимальный код для печати «Hello, World!» сообщение в консоль.

    1. public class Hello {
    2. public static void main(String[] args) {
    3. System.out.println("Hello, World!");
    4. }
    5. }

    Эта программа выведет на консоль сообщение Hello, World!. Имя файла (в данном случае Hello с расширением .java) должно совпадать с именем общедоступного класса в исходном коде, то есть Hello. Соответствие имени файла и имени общедоступного класса в исходном коде является соглашением Java. (Об этом полезно помнить, потому что, если вы найдете полезный код, вы будете знать, как назвать файл исходного кода Java.)

    Сохраните и закройте файл. Используя nano, нажмите CTRL+X, чтобы выйти, Y, чтобы сохранить, и ENTER, чтобы подтвердить имя файла и закрыть файл.

    В терминале запустите javac из того же каталога, где находится файл Hello.java, чтобы код скомпилировался:

    1. javac Hello.java

    Исходный код Java должен быть скомпилирован с использованием javac с полным именем файла.

    Наконец, запустите программу с исполняемым файлом java следующим образом:

    1. java Hello

    Чтобы выполнить скомпилированный код, вы должны запустить java, за которым следует имя класса (в данном примере это Hello). Вы не можете использовать любое расширение имени файла, такое как .java или .class, при выполнении кода.

    Ваш вывод будет выглядеть так:

    Hello, World!
    

    Ваша программа успешно запущена! Вы создали базовую программу Java, скомпилировали ее и выполнили. Далее вы увидите, как все это работает.

    Понимание «Hello, World!» Программа

    Если вы привыкли писать код на Python или JavaScript, вы обнаружите, что Java имеет некоторые отличия даже в небольшой программе. Каждая программа на Java нуждается как минимум в двух вещах:

    • Класс для вашего кода.
    • Основной метод внутри вашего класса.

    Вам нужен класс, потому что Java — это объект — это конкретный экземпляр класса, который можно использовать в вашем коде. Объекты имеют свойства и могут действовать, когда вы активируете их методы.

    В вашей программе это класс Hello:

    1. public class Hello {
    2. public static void main(String[] args) {
    3. System.out.println("Hello, World!");
    4. }
    5. }

    Первая строка кода обозначает начало класса. Классы всегда начинаются с class, за которым следует их имя. В этом случае имя класса — Hello, и оно совпадает с именем файла с расширением .java. Затем идет открывающая фигурная скобка ({) и закрывающая фигурная скобка (}) в конце фрагмента кода, внутри которого вы помещаете код класса.

    У класса есть модификатор доступа (который есть и у методов). В данном случае это public, что означает, что он полностью доступен.

    Лучше всего использовать только один класс для каждого файла, что упрощает чтение кода. Тем не менее, такого официального требования нет, и вы можете иметь неограниченное количество классов в одном файле. Однако есть одна загвоздка: только один из классов внутри файла может быть общедоступным, и он должен иметь одно и то же имя с учетом регистра.

    В дополнение к классу ваша программа также имеет метод main. Метод main — это начальная точка выполнения для класса, а в этом руководстве — и для всей программы. У него очень специфический синтаксис: public static void main(String[] args):

    1. public class Hello {
    2. public static void main(String[] args) {
    3. System.out.println("Hello, World!");
    4. }
    5. }

    public — это модификатор доступа, означающий отсутствие ограничений на вызов метода.

    static — это специальное ключевое слово, обозначающее, что метод (в данном случае) или свойство не требует явного создания нового объекта, чтобы вы могли его вызвать. Это имеет много применений; в частности, он разрешает возможную ситуацию «курицы и яйца», в которой в какой-то момент некоторый код должен быть в состоянии создать первый объект вашей программы, не будучи частью самого объекта.

    void — тип возвращаемого значения, означающий, что вызывающей стороне ничего не возвращается. В этом случае вы будете печатать сообщение на экране и, таким образом, напрямую потреблять результат выполнения. Хотя здесь void ничего не возвращает, в других случаях методы часто возвращают различную информацию, например буквенно-цифровые символы, целые числа или объекты.

    String[] args — это параметр или ввод для метода main. Строка символов или строка хранит буквенно-цифровую информацию. Квадратные скобки ([]) указывают, что это массив строк, а не одна строка. Имя этого массива — args. В этом случае main() не имеет никаких аргументов, но если бы они были, они бы содержались в этом массиве.

    Если вы пропустите какой-либо из основных атрибутов метода, например тот факт, что он является public, вы можете не получить синтаксическую ошибку, но он не будет работать должным образом (в качестве отправной точки).

    Чтобы вывести текст на консоль, вы используете метод System.out.println():

    1. public class Hello {
    2. public static void main(String[] args) {
    3. System.out.println("Hello, World!");
    4. }
    5. }

    Метод говорит компьютеру выполнить действие. Мы можем сказать, что это метод, потому что он использует круглые скобки: (). Сам метод называется println() и принимает один аргумент для печатаемого текста. System.out предшествует методу, чтобы указать, что метод является частью основных функций Java (System) для вывода (out).

    В этом случае вы используете метод из подпакета out, который является частью родительского пакета System. Чтобы лучше понять, как организованы классы в Java, представьте, что иерархия классов аналогична файловой системе с родительскими папками и связанными зависимыми подпапками. В Java эти папки называются пакетами. Связанные классы помещаются в один пакет или подпакет в зависимости от степени детализации иерархии.

    Аргументом System.out.println() является строка: Hello, World!. Мы знаем, что это строка, потому что строка всегда заключена в двойные кавычки. В отличие от других языков, таких как PHP, для строк Java нельзя использовать одинарные кавычки.

    Одной из особенностей синтаксиса Java является то, что он требует точку с запятой в конце каждого оператора, например, для печати текста: System.out.println(Hello, world!);.

    Примечание. Если вы используете IDE или текстовый редактор с поддержкой синтаксиса Java, вам не нужно беспокоиться об отсутствующих точках с запятой, поскольку эти программы автоматически позаботятся об этом и других особенностях синтаксиса.

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

    Компиляция и запуск «Hello, World!» Программа

    В этом разделе вы узнаете, что происходит, когда вы компилируете и запускаете свою Java-программу. Для компиляции кода вы использовали javac из JDK:

    1. javac Hello.java

    Файл Java .class — это машинный код, который JRE может интерпретировать и запускать.

    Вы можете просмотреть файл Hello.class, выполнив команду ls из каталога проекта.

    1. ls

    Эта команда выводит список файлов в вашем текущем каталоге:

    Output
    Hello.class Hello.java

    После компиляции кода вы запускаете его с исполняемым файлом java из JRE:

    1. java Hello

    JRE запускает только скомпилированный код и никоим образом не может выполнять код из стандартного удобочитаемого файла. Точно так же, если вы попытаетесь прочитать скомпилированный файл .class с помощью стандартного текстового редактора, вы не сможете это сделать. Однако с помощью таких инструментов, как декомпилятор Java, вы можете читать скомпилированные файлы, что может быть полезно при отладке программ, для которых у вас нет исходного кода.

    С помощью этой команды вы указываете исполняемому файлу JRE java обработать класс с именем Hello, который находится в файле Hello.class.

    Когда на консоль выводится сообщение Hello, World!, вы подтверждаете следующее:

    • У вас есть правильно работающая среда Java, в которой вы можете компилировать и выполнять код.
    • Java успешно обнаружила код класса Hello и может получить к нему доступ.
    • Поток выполнения начался с метода main(). Там был вызван метод System.out.println() со строковым аргументом Hello, World!. Приветственное сообщение напечатано на экране.
    • Поскольку другого кода нет, программа успешно завершила работу.

    Вызывая java, вы запускаете виртуальную машину типа What is a Virtual Machine? для получения более общей информации о виртуальных машинах.

    JVM хорошо изолирована и не зависит от внешней среды, библиотек или операционной системы хостинга в целом. JVM ведет себя очень похоже, если не совсем одинаково, в разных операционных системах, что делает Java переносимой, предсказуемой и безопасной. Это отличается от других языков, таких как PHP, где интерпретатор PHP использует множество собственных библиотек операционной системы.

    Поскольку Java запускает собственную виртуальную машину для достижения такой изоляции, этот процесс потребляет довольно много мегабайт памяти. Однако Java оптимизирован для эффективного управления ресурсами. Даже при потреблении ресурсов, связанных с запуском собственной виртуальной машины, Java обладает превосходной производительностью для больших, сложных и долго выполняющихся программ.

    Другими словами, могут существовать более простые и эффективные способы программирования сообщений, выводящихся на экран на других языках. Но, используя Java, вы сможете создавать сложные программы, совместимые с различными операционными системами.

    Заключение

    Поздравляем! Вы написали свою первую программу на Java.

    Вы можете продолжить работу с кодом в файле Hello.java и посмотреть, что произойдет, если вы измените текст или удалите точку с запятой и получите сообщение об ошибке. Просто обязательно компилируйте код (javac Hello.java) каждый раз, когда вы вносите изменения в файл Hello.java.

    Чтобы узнать больше о Java, ознакомьтесь с нашей серией статей How To Code in Java.