Читать книгу «Java за неделю. Вводный курс» онлайн полностью📖 — Валерия Станиславовича Яценкова — MyBook.
image

2.3 Первый проект на Java

Сейчас вы создадите свой первый проект. Возможно, у вас появится много вопросов, но не волнуйтесь – ответы будут даны позже. Сначала вы должны получить базовые навыки работы с NetBeans IDE, чтобы использовать примеры по мере прочтения книги.

Запустите NetBeans. Выберите пункты меню Файл | Создать проект или нажмите на значок с изображением зеленой папки и символа «+». Выберите категорию Java и тип проекта Приложение Java (рис. 2.2). Введите имя нового проекта. Пусть это будет HelloJava (рис. 2.3).

Рис. 2.2 Выберите тип проекта Java


Рис. 2.3 Введите название проекта


Обратите внимание, что вам предложено создать главный класс, для которого автоматически сформировано имя пакета. Так как название пакета состоит из двух слов, поставьте между ними подчеркивание, чтобы имя пакета полностью соответствовало соглашению об именах. Нажмите кнопку Готово, и через несколько секунд NetBeans сформирует новый проект и откроет шаблон исходного кода.

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

Найдите строку

// TODO code application logic here

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

System.out.println («Hello Java»);

У вас должна получиться программа как в листинге 2.1 (комментарии удалены).


Листинг 2.1 Первая программа на языке Java

package hello_java;

public class HelloJava {

public static void main (String [] args) {

System.out.println («Hello Java»);

}

}

Запустите программу на выполнение, нажав значок зеленого треугольника или выбрав пункт меню Выполнить | Запустить проект. Спустя несколько секунд сборка проекта будет завершена. В нижней части интерфейса NetBeans откроется окно терминала, в который будет выведен текст «Hello Java» и сообщение об успешной сборке проекта (рис. 2.4).


Рис. 2.4 Окно системного терминала NetBeans


Попробуйте совершить ошибку в тексте программы и посмотрите, как отреагирует среда разработки. Удалите одну из кавычек, обрамляющих строку «Hello Java». Система контроля синтаксиса немедленно отреагирует на ошибку. Ближайшая круглая скобка будет выделена красным цветом (из-за отсутствующей кавычки эта скобка оказалась не на своем месте), а напротив строки, содержащей ошибку, появился восклицательный знак на красном фоне. Это обозначение критической ошибки, которая приведет к ошибке компиляции. При наведении указателя мыши на значок ошибки появляется всплывающая подсказка (рис. 2.5).


Рис. 2.5 Система проверки синтаксиса в действии


Теперь сделайте ошибку в названии пакета, и вместо hellojava в первой строке введите yellojava. Слева от строки вновь появился значок, только теперь это лампочка с маленьким восклицательным знаком. Это означает, что система не видит здесь фатальную синтаксическую ошибку, которая требует обязательной правки кода, а лишь уведомляет, что вы что-то перепутали или упустили. В данном случае вы ссылаетесь на пакет, которого нет в проекте. Если вы и в самом деле включите в состав проекта пакет с названием yellojava, то значок ошибки исчезнет.

Если вопреки сообщениям об ошибке принудительно запустить компиляцию проекта, то в окне системного терминала будет выведено диагностическое сообщение с указанием строки (или нескольких строк), где присутствуют ошибки. Щелкните на ссылку в сообщении, и курсор в окне редактора автоматически переместится на нужную строку программы.

2.4 Забегая вперед: классы, объекты и методы

Изучение сложного языка программирования – это борьба за первенство между курицей и яйцом. Чтобы понять программу на языке Java, необходимо владеть основными понятиями объектно-ориентированного программирования (ООП). С другой стороны, чтобы изучить понятия ООП применительно к Java, сначала надо познакомиться с синтаксисом и операторами. Если вы уже знакомы с ООП по другим языкам, то вам будет намного проще изучать Java.

Чтобы продолжить рассказ о языке Java и среде разработки, я немного забегу вперед и скажу несколько слов о классах, объектах и методах. Более подробно об этом будет рассказано в главе 6 «Классы и объекты». Если есть желание, можете перейти к чтению главы 6 прямо сейчас, а затем вернуться к главе 2.

Итак, любая программа Java состоит из классов, на основе которых создаются объекты. Объект в общем случае представляет собой набор переменных и методов. Метод – это именованный фрагмент кода, предназначенного для обработки переменных объекта и выполнения иных действий.

Программа практически всегда содержит главный класс и главный метод main (), который выполняется при запуске программы.

Вернемся к листингу 2.1. В нем объявлен главный класс HelloJava, который содержит единственный метод main (). Если вы не объявили главный класс при создании нового проекта, то впоследствии компилятор все равно спросит вас, какой класс считать главным.

2.5 Структура проекта Java

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

На вершине иерархии Java располагается собственно проект, с создания которого мы начинаем свою работу (рис. 2.6). В нашем случае это проект под названием HelloJava. Проект состоит из одного или нескольких пакетов исходных кодов, а также подключаемых библиотек.

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


Рис. 2.6 Структура программы на языке Java


Для устранения возможных конфликтов имен классов и четкого структурирования проекта применяется разбиение на пакеты.

С физической точки зрения пакет Java – это отдельный каталог (папка) на диске компьютера. Имя каталога совпадает с именем пакета. Например, если вы установили NetBeans IDE на компьютер с ОС Windows с настройками по умолчанию, то в папке Documents будет создана папка NetBeansProjects. В ней расположены папки проектов. Сейчас там появилась папка HelloJava, внутри нее находится папка src. Она соответствует папке «Пакеты исходных кодов» на рис. 2.6. Внутри нее находится собственно папка пакета hellojava, которая содержит файл HelloJava. java. Как видите, физическая структура каталогов повторяет структуру проекта, отображаемую в окне NetBeans IDE.

При разработке простого приложения имя пакета можно не указывать, и среда NetBeans автоматически создаст безымянный «пакет по умолчанию». Но лучше сразу привыкать к использованию именованных пакетов.

Каждый пакет формирует отдельное пространство имен. Это важно для крупных профессиональных разработок, когда один и тот же пакет может быть включен в состав различных независимых проектов. Благодаря разделению классов по пакетам, разработчики застрахованы от случайных конфликтов имен.

В первой строке листинга 2.1 мы указали, что создаем пакет hello_java и работаем в его пространстве имен. Допускается создание подпакетов (вложенных пакетов). В таком случае имя пакета и подпакета разделяется точкой:

package main_pack.sub_pack;

Глубина вложенности пакетов формально не ограничена. Физическая структура файлов и папок на диске компьютера должна соответствовать структуре вложенных пакетов проекта.

Чтобы воспользоваться в программе классами из стороннего пакета, его нужно импортировать при помощи инструкции import. После нее указывают имя пакета и, через точку, имя импортируемого класса или звездочку *, если импортируются все публичные классы пакета:

import mypack.MyClass;

import nextpack.*;

Использование звездочки не увеличит размер приложения, потому что компилятор все равно включит в него только нужные классы. Но если пакет содержит несколько сотен или тысяч классов, то время компиляции может заметно возрасти.

Теперь разверните в окне просмотра проекта (рис. 2.6) папку «Библиотеки». По умолчанию там находится главный системный пакет JDK, который содержит предоставленные разработчиком классы для работы с системой. Этот пакет всегда подключен на уровне среды разработки, поэтому в явном импорте классов SDK нет нужды.

Теперь мы можем сказать, что означает строка из листинга 2.1:

System.out.println («Hello Java»);

В этой строке мы последовательно обращаемся к встроенному классу System, его полю out и методу println (String). Компилятор преобразует эту строку в байт—код, который заставит виртуальную Java—машину вывести в окно терминала строку текста.

При разработке собственных приложений вы можете подключать к проекту библиотеки сторонних разработчиков. Например, чтобы работать с последовательными портами компьютера, можно воспользоваться библиотекой JSSC, а для работы с базами данных MS Access пригодится библиотека UCanAccess.

Глава 3. Переменные и операторы

Вы получили общее представление