Hello Java создаем свою первую программу

Итак, сегодня мы будем писать нашу первую программу на Java. Делать это мы будем используя всем знакомый блокнот. Почему блокнот, а не какую-либо IDE? Да потому, что так будет понятней принцип работы с кодом и его последующей компиляцией. Это как у бухгалтеров, чтобы понять корреспонденцию счетов — надо начинать с «самолетиков» (проводок между счетами), а если сразу сесть заполнять настроенную 1С, то полнота картины сбора отчета о прибылях и убытках и бухгалтерского баланса будет утеряна, человек просто превращается в оператора ввода данных в программу.

Процесс установки Java мы пропустим, т.к. он хорошо описан в видеоролике к статье Установка Androd Studio. Однако, хотелось бы закрыть несколько теоретических вопросов, касаемых платформы Java. Платформа разбита на несколько технологий и вызывает некоторую путаницу, давайте разберемся:

  • Java SE (Java Standard Edition) — основное издание Java. В данный набор в свою очередь входит:

— JRE (Java Runtime Environment) — это исполнительная среда Java в которой выполняются программы, она состоит из виртуальной машины JVM (Java Virtual Machine) и библиотек Java классов. JVM интерпретирует и исполняет байт-код Java, который формируется посредством компиляции исходного кода программы с помощью компилятора. В основном у пользователей, которые не заинтересованы программировать на Java, установлен именно JRE, т.к. браузеры предлагают устанавливать данный пакет, если не могут открыть страницу в которой присутствует апплет (встроенный код) на Java.

— JDK (Java Development Kit) — набор программных решений, рассчитанный на разработчиков приложений на Java. В него входит JRE, компилятор, Java библиотеки, документация, примеры и различные утилиты. Из чего следует, что если вы установили JDK, то вам не надо отдельно устанавливать JRE.

  • Java EE (Java Enterprise Edition) — представляет собой набор спецификаций (еще раз — НЕ программ, а спецификаций!!!) для создания программного обеспечения уровня предприятия, подробней на wiki.
  • JavaFX — технология, являющаяся следующим шагом в эволюции Java, предназначена для создания графических интерфейсов корпоративных приложений и бизнеса.
  • Java ME (Java Micro Edition) — создана для использования в устройствах, ограниченных по вычислительной мощности, например в мобильных телефонах, КПК, встроенных системах;
  • Java Card — технология предоставляет безопасную среду для приложений, работающих на смарт-картах и других устройствах с очень ограниченным объёмом памяти и возможностями обработки.

Про две последних технологии на данный момент можно забыть, в связи с малой актуальностью. Java ME — использовался на телефонах, которые практически вытеснены смартфонами, а Java Card слишком редко используется.

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

public class MyFirstJavaProgram {
	public static void main (String[ ] args) {
		System.out.println("Hello World!!!");
	}	
}

Первая строка кода является обязательной для всех программ на Java и начинается с объявления нового класса (используется ключевое слово class) и присвоением ему имени (идентификатора) MyFirstJavaProgram. Имена классов принято объявлять с большой буквы и все составные слова так же начинать с большой буквы. Cлово public — это спецификатор доступа, он говорит о том, что внешние по отношению к MyFirstJavaProgram классы будут иметь доступ к его коду. Далее открываются фигурные скобки, они указывают компилятору где начинается и заканчивается класс.

Вторая строка кода объявляет новый метод main() — он является отправной точкой выполнения программ. Все программы Java должны содержать один метод main() с параметром String [ ] args, т.е это строка тоже обязательна и встречается в коде всегда! Скомпилировать код без метода можно, но программа не будет выполнять свой код. Проще говоря — наша программа могла бы содержать много классов идущих один за другим, и компилятор бы не знал с какого класса следует начинать ее запускать, метод main как раз помогает ему в этом определиться. Слово static позволяет методу main() вызываться без потребности создавать экземпляр класса, что это означает вы узнаете в ходе дальнейшего изучения Java.  Ключевое слово void говорит компилятору, что метод не возвращает никакого значения, т.е. не делает никаких манипуляций с переданными ему данными с последующим возвратом результата. В круглых скобках метода main находятся его параметры, которые задаются через переменные. В данном случае переменная называется args, вы можете назвать ее как вам захочется (конечно соблюдая правила именования переменных), просто все привыкли по стандарту писать args. Java является строго типизированным языком, т.е. типы всех переменных в коде должны быть явно (самостоятельно) объявлены программистом. Текст String перед переменной как раз указывает на то, что она относится к строковому типу данных. Скобки [ ] говорят о том, что переменная является массивом. Обращаю внимание, что написание main (String [ ] args) и main (String args [ ] ) эквиваленты, т.е. скобки [ ] можно ставить как до, так и после переменной args, НО правилом хорошего тона является первый вариант написания, т.к. типы переменной принято объявлять до ее наименования.

Вот мы и добрались до третьей строки.  Данная запись отображает строку на экране. Вывод строки осуществляется с помощью «встроенного» в Java метода println ( ), он отображает строку, которая передаётся со справкой System.out — предопределенный класс System с выводящим потоком out. В круглых скобках метода println указываем параметр непосредственно в виде строки (текста) с помощь двойных кавычек » «. Синтаксис Java предполагает обязательное указание в конце всех инструкций (;), что мы и наблюдаем в конце данной строке.

Четвертая и пятая строка в виде скобок } последовательно закрывают метод main и класс MyFirstJavaProgram.

Код написан, теперь надо его скомпилировать — перевести на машинный код. Нажимаем Файл -> Сохранить выбираем папку на диске и сохраняем файл с расширением .java, присвоив ему имя такое же как у класса в первой строке кода MyFirstJavaProgram.java Обращаю ваше внимание на то, что называть файлы именем содержащегося в нем класса — это обязательное условие, регистр букв (заглавная/прописная) имеет значение!!! Далее открываем командную строку (Пуск -> выполнить, пишем cmd). Далее вводим строку:

C:\>javac "C:\путь к папке\MyFirstJavaProgram.java"
C:\>java "C:\путь к папке\MyFirstJavaProgram"

Первая строка с помощью компилятора (файл javac.exe находится в папке bin установленного JDK) создаст бинарный файл в той же папке где находится MyFirstJavaProgram.java, но уже с расширением .class. Вторая строка, с помощью файла java.exe (так же из папки bin установленного JDK) производит выполнение программы, в итоге на экране консоли вы увидите надпись Hello World!!! Если у вас возникает ошибка «Could not find or load main class» (связано с особенностью указания расположения вашего класса, подробней тут) то, как вариант, перед выполнением второй строчки перейдите в папку с классом (есть и другие варианты решения, но мы остановимся на этом):

c:\>cd "c:\путь к папке с фалом класса\"
c:\путь к папке с фалом класса>java MyFirstJavaProgram

Итак, первое приложение написано. Мы поняли принцип создания исполняемого файла и изучили основной «скелет» программ на Джава, немного познакомились с синтаксисом. Что же на самом деле представляют из себя классы, объекты, методы, переменные и т.д. вы поймете в ходе дальнейшего изучения языка Java. Удачи.

Один комментарий

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *