Первая программа на Java
Для того чтобы создать простое приложение на Java необходим текстовый редактор для набора кода программы, например:
Vi/Vim/Nano (for UNIX-like OS)
Notepad (for Windows)
Рассмотрим пример простой программы на Java:
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 // . При компиляции программы все комментарии игнорируются и служат лишь для пояснения действий программисту.
Первая программа на Java. Структура программ, написанных на Java
Одним из самых популярных и востребованных языков программирования считается Java. Давайте посмотрим, какова структура программ на Java, и напишем свою первую программу на этом языке.
Итак, в первую очередь вам понадобится установить JDK (Java Development Kit) — комплект средств разработки приложений на Java. Это софт от Oracle, включающий в себя: — среду выполнения (Java Runtime Environment); — компилятор (javac); — стандартную библиотеку Java; — примеры, техническую документацию.
Устанавливаем JDK
Чтобы установить Java Development Kit: 1. Переходим по ссылке и загружаем JDK для нужной платформы. 2. Извлекаем архив, запускаем приложение. 3. Выбираем «Development Tool», нажимаем «Next». 4. Настраиваем JDK для своей системы. Если речь идёт Windows: — переходим в папку %ProgramFiles%\Java\%версия установленного jdk%\bin; — нажимаем на свойства файла в папке и копируем путь к нему; — переходим в свойства компьютера, открываем вкладку «Дополнительно»; — нажимаем «Переменные среды…»; — создаём в открывшемся окне новую переменную, называем её Path, в её значение вставляем скопированный ранее путь; — открываем командную строку, набираем javac, дабы удостовериться, что JRE установлен и настроен. Если к команде javac будет выдан список аргументов, то всё ок, можно приступать к написанию программ на Java.
Установка IDE
Установив JDK, не помешает установить и IDE (Integrated Development Environment) – комплекс программных средств, применяемых разработчиками для создания программного обеспечения. Среда разработки IDE позволит вам легко писать, запускать, тестировать и отлаживать Java-код.
IDE целесообразно использовать для написания сложных программ. Да, можно писать код даже в простом блокноте, но гораздо удобнее это делать, используя более профессиональные инструменты. Давайте посмотрим, какие IDE сегодня наиболее популярны для Java.
NetBeans
NetBeans выбирают профессиональные Java-разработчики. Среда предоставляет отличные возможности и инструменты, позволяющие сделать программу кроссплатформенной, а ваш код удобочитаемым. Поддерживается как Java, так и другие языки программирования. Среда бесплатна и имеет много плюсов, вот некоторые из них: — возможность форматирования кода; — простой графический интерфейс; — установка сторонних библиотек и многое другое.
Eclipse
Среда предоставляет впечатляющий интерфейс, который удобен и интуитивно понятен. Скачивается бесплатно, имеет ряд плюсов: — форматирование кода; — поддержка разбиения кода на модули; — перетаскивание (drag-and-drop); — просмотр содержимого библиотек; — простота применения одного и того же кода в различных проектах.
IntelliJ IDEA
Известнейшая IDE для Java, написана на Java. Комплектуется уникальными инструментами, позволяет находить ошибки, упрощает отладку кода и т. д. Многие начинающие программисты используют этот софт для создания своих первых программ на Java.
JCreator
Достаточно продвинутая IDE для Java, которая написана на C++ и считается самой быстрой.
Пишем первую программу на Java. Структура программ на Java
Итак, у вас установлено и настроено всё, что необходимо для работы с Java: JDK, JRE и IDE. Что дальше? Конечно же, надо написать первую программу, чтобы удостовериться, что всё в порядке, код работает, а вы готовы изучать язык. Кроме того, это позволит вам познакомиться с базовой структурой Java-кода (тут стоит учесть, что перед началом изучения Java будет нелишним ознакомиться и с основными принципами ООП (объектно-ориентированного программирования). Что касается структуры программ на Java, то её можно представить следующим образом:

Файл с исходным кодом включает несколько классов — это части программы на Java, имеющие определённые функции. Считается хорошей практикой разбивать программы на несколько файлов с кодом, причём каждый со своим назначением. Что касается классов, то в них содержатся методы — это, по сути, действия, которые могут выполнять объекты данного класса. Метод содержит команды, позволяющие получать необходимый результат.
Перед написанием первой программы, нужно создать проект, а в проекте — файл, где будет содержаться код. Вот, как это выглядит на IDE Eclipse (в других IDE процесс не сильно отличается): — сверху выбираем «File», наводим курсор на «New», в появившемся меню выбираем «Java Project»; — появится окно, где вводим имя проекта и прочие необходимые настройки (в первый раз можно оставить как есть), нажимаем «Next». Проект создан! — создаём в проекте класс, где будем писать первую программу. Для этого щёлкаем правой кнопкой мыши по своему проекту (он должен появиться справа), выбираем «New» → «Class» и присваиваем новому классу имя (в нашем примере – это First). Останется лишь нажать «Finish».
Вот мы и добрались до момента написания первой программы на Java. Не будем ломать традицию и напишем программу, выводящую на экран «Hello, world!».
Давайте теперь разберём, что написали: 1) public – модификатор доступа, который определяет, из какой части программы можно использовать наш класс. В нашем случае — это весь код; 2) class – ключевое слово, которое показывает, что вы объявляете класс, а не что-нибудь другое; 3) First – имя класса в Java; 4) public static void main(String args[]) – таким образом объявляется публичный статический метод (метод, который можно вызвать, не прибегая с созданию объекта класса). В нашем примере метод ничего не возвращает, принимая в качестве аргументов массив строк. Также у нас есть println — единственная команда в методе, выводящая в консоль сообщение «Hello, world!». Кстати, вместо println вы можете написать и print (разница в том, что println дополнительно обеспечивает перенос строки).
Что же, первая программа на Java написана, а значит, пора её запустить. Я думаю, найти кнопку «Run» труда не составит. Нажав её, вы увидите консоль с сообщением “Hello, world”.
Поздравляем, вы написали первую программу на Java, поэтому готовы к тому, чтобы начать погружаться в увлекательный мир Java-программирования! И делать это лучше с OTUS.
Простая программа на Java
Давайте начнём с простой Java программы, которая показывает в консоли сообщение «Welcome to Java!». (Слово «консоль» – это старый компьютерный термин, который относится к устройству ввода и отображения текста на компьютере. Консольный вход означает получение ввода с клавиатуры, а выход консоли – отображение вывода на мониторе. В NetBeans вывод показывается в специальном окне:

Вне IDE консольные программы (т.е. без графического интерфейса) запускают в командной строке. О командной строке в следующем разделе «Создание, компиляция и выполнения Java программ».
Исходный код программы
Строка 1 определяет класс. Каждая Java программа должна иметь по крайней мере один класс. Каждый класс имеет имя. Принято, что имена классов начинаются с заглавной буквы. В этом примере класс назван Welcome.
Строка 2 определяет метод main. Программа начинает выполнение с метода main. Метод main – это точка входа, где программа начинает выполнение.
Метод – это конструкция, которая содержит инструкции. Метод main в этой программе содержит инструкцию System.out.println. Инструкция отображает в консоли строку «Welcome to Java!». Строка (String) – это термин в программировании, означающий последовательность символов. Строка должна быть заключена в двойные кавычки. Каждая инструкция в Java заканчивается точкой с запятой ( ; ), которая служит разделителем инструкций.
Зарезервированные слова, или как их ещё называют ключевые слова, имеют определённое значение для компилятора, и они не могут использоваться для других целей в программе. Например, когда компилятор видит слово class, он понимает, что слово после class – это имя класса. Другими зарезервированными словами в этой программе являются public, static и void.
Строка 3 – это комментарий, которая документирует действия программы и её устройство. Комментарии помогают программистам общаться и понимать программу. Они не являются программными инструкциями и, таким образом, игнорируются компилятором. В Java комментариям предшествуют два слеша на строке (//), которая так и называется – строка комментария. Комментарии могут располагаться между /* и */ на одной или нескольких строках, эти строки называются блоком комментариев или параграфом комментариев. Когда компилятор видит //, то он на этой строке игнорирует весь текст после //. Когда видит /*, он сканирует следующий */ и игнорирует любой текст между /* и */.
Несколько примеров комментариев:
Пара фигурных скобок в программе формирует блок, который группирует компоненты программы. В Java каждый блок начинается с открывающей фигурной скобки ( <)и заканчивается закрывающей фигурной скобкой. (>). Каждый класс имеет блок класса, который группирует данные и методы класса. Похожим образом каждый метод имеет блок метода, который группирует инструкции в методе. Блоки могут быть вложенными, это означает, что один блок может быть помещён внутри другого, как показано на следующем коде:

Подсказка: любой открывающей фигурной скобке должна соответствовать закрывающая. Каждый раз, когда вы напечатали открывающую фигурную скобку, сразу печатайте закрывающую, для предотвращения ошибок, вызванных отсутствие скобки. Большинство IDE для языка Java автоматически вставляют закрывающую фигурную скобку для каждой открывающей.
Внимание: исходный код программ Java чувствителен к регистру. Будет неправильным, например, заменить в программе main на Main.
Вы познакомились с несколькими специальными символами в программе (например, , //, ;). Они используются практически в каждой программе. Таблица обобщает их использование:
| Символ | Имя | Описание |
|---|---|---|
| <> | Открывающая и закрывающая фигурная скобка | Обозначает блок для окружения инструкций. |
| () | Открывающая и закрывающая круглая скобка | Используется с методами. |
| [] | Открывающая и закрывающая квадратная скобка | Обозначает массив. |
| // | Двойной слэш | Предшествует комментарию. |
| " " | Открывающая и закрывающая кавычки | Окружает строку (т.е. последовательность символов). |
| ; | Точка с запятой | Обозначает конец инструкции. |
Самыми распространёнными ошибками, которые вы будете делать пока учите программировать, это синтаксические ошибки. Как любой язык программирования, Java имеет свой собственный синтаксис, и вам нужно писать код, который удовлетворяет правилам синтаксиса. Если ваша программа нарушает правило, например, если отсутствует точка с запятой, отсутствует фигурная скобка, отсутствует кавычка или неправильно написано слово – компилятор Java сообщит об ошибках синтаксиса.
Примечание: возможно вам интересно, почему метод main так определяется и почему для отображения сообщения в консоли используется System.out.println(…). На данный момент просто примите это как данность. В последующих главах на все ваши вопросы будут даны ответы.
Программа в начале выводит одно сообщение. Теперь, когда вы вникли в программу, легко её распространить для отображения большего числа сообщений. Например, вы можете перезаписать программу для отображения трёх сообщений:

В дальнейшем вы можете выполнять математические расчёты и отображать результаты в консоли. Пример вычисления 

Для умножения в Java используется *. Как вы можете увидеть, это простой процесс для преобразования арифметический выражений в Java инструкции. Подробнее это будет рассмотрено в следующей главе.
Основной метод Java – main method
Программа Java – это последовательность инструкций, которые выполняются в определенном порядке. Поскольку инструкции выполняются в определенном порядке, Java-программа имеет начало и конец.
Для выполнения вашей программы вам необходимо указать виртуальной машине, с чего начать выполнение программы. Все инструкции(код) должны находиться внутри класса. Класс – это способ группировки данных и инструкций, которые принадлежат друг другу. Таким образом, класс может содержать как переменные, так и методы. Переменная может содержать данные, а метод группирует набор операций над данными(инструкции). Не так страшно, если вы еще не до конца поняли это. Начнем разбираться.
Простое объявление класса Java
Объявление простого класса без каких-либо переменных, методов или любых других инструкций выглядит следующим образом:
Этот код Java должен находиться в файле с тем же именем, что и у класса, и заканчиваться суффиксом файла .java. В частности, имя файла должно быть MyClass.java. Как только файл находится в файле, соответствующем его имени класса и оканчивающемся на .java, вы можете скомпилировать его с помощью компилятора из Java SDK или изнутри вашей Java IDE(что гораздо проще).
Рекомендуется размещать свой класс в пакете Java. Пакет Java – это просто каталог в вашей файловой системе, который может содержать один или несколько файлов. Пакеты могут быть вложенными, как каталоги.
Например, вы можете создать пакет с именем myjavacode, который будет соответствовать каталогу на вашем жестком диске с именем myjavacode.
Если вы находите класс внутри пакета, вы должны указать имя пакета в верхней части файла. Вот как выглядит класс с добавлением объявления пакета:
Примечание. Файл MyClass.java должен теперь находиться в каталоге myjavacode и содержать объявление пакета package myjavacode; Недостаточно, чтобы файл находился в правильном каталоге. Также недостаточно просто иметь объявление пакета внутри файла. Оба требования должны быть выполнены.
main() метод
Java-программа начинается с выполнения метода main некоторого класса. Вы можете выбрать имя класса для выполнения, но не имя метода. Метод всегда должен называться main . Вот как выглядит объявление основного метода, когда он находится внутри объявления класса:
Три ключевых слова public, static и void имеют особое значение. Просто помните, что для объявления метода main() нужны эти три ключевых слова.
После трех ключевых слов у вас есть имя метода. Напомним, что метод – это набор инструкций, которые могут быть выполнены, как если бы они были одной операцией. Вызывая(выполняя) метод, вы выполняете все инструкции внутри этого метода.
После имени метода сначала ставится левая скобка, а затем список параметров. Параметры – это переменные(данные / значения), которые мы можем передать методу, который может использоваться инструкциями в методе для настройки его поведения. Основной метод всегда должен принимать массив объектов String. Вы объявляете массив объектов String следующим образом:
Расскажу о том, что такое String или что такое массив в следующих уроках. Не имеет значения, какое имя вы даете параметру. Ранее в примере с методом main() я вызывал параметр аргумента массива String, а во втором – строковый массив. Вы можете выбрать имя любое.
После списка параметров метода следует сначала левая фигурная скобка(<), затем некоторое пустое пространство, а затем правая фигурная скобка(>). Внутри фигурных скобок инструкции, которые должны выполняться при выполнении основного метода. В приведенном выше примере нет никаких инструкций для выполнения. Метод пуст.
Давайте вставим одну инструкцию в основное тело метода. Вот пример:
Теперь основной метод содержит эту единственную инструкцию:
Эта инструкция выведет текст Hello World, Java Program. Если вы запустите свою программу из командной строки, вы увидите вывод в консоли командной строки. Если вы запускаете из IDE, IDE обычно перехватывает весь вывод на консоль и делает его видимым для вас где-то внутри IDE.
Запуск метода main()
Когда вы запускаете программу, вы обычно делаете это через командную строку(консоль). Вы вызываете команду, которая поставляется вместе с JRE, и указываете, какой класс выполнять и какие аргументы передавать методу main(). Затем Java-приложение выполняется внутри JVM. Вот диаграмма, иллюстрирующая это:

Вот пример командной строки:
- Первая часть этой команды запускает JVM. В некоторых случаях вам может потребоваться указать полный путь к папке, в которой находится команда на вашем компьютере(обычно внутри подкаталога bin каталога установки Java).
- Второй и третий аргументы(классы -cp) сообщают JVM, в каком каталоге находятся скомпилированные классы. В этом случае скомпилированные классы расположены в каталоге с именем classes.
- Четвертый аргумент – это имя класса Java, который должна выполнить JVM. Обратите внимание, что имя класса также содержит имя пакета, в котором находится класс(«полное имя класса»).
Передача аргументов
Вы можете передавать аргументы из командной строки в метод main().
Когда JVM выполняет метод main() myjavacode.MyClass, массив String, передаваемый в качестве параметра методу main(), будет содержать две строки: «Hello» и «World».
Метод может получить доступ к аргументам из командной строки следующим образом:
Обратите внимание на ссылки на элемент 0 и элемент 1 в массиве args(args [0] и args [1]). args [0] будет содержать строку(текст) Hello, а args [1] будет содержать мир строки.
В вашем проекте может быть столько классов, сколько вы хотите, с методом main(). Но виртуальной машине можно поручить запускать только один из них одновременно.