bannerbanner
Java за неделю. Вводный курс
Java за неделю. Вводный курс

Полная версия

Java за неделю. Вводный курс

Настройки чтения
Размер шрифта
Высота строк
Поля
На страницу:
1 из 3

Java за неделю

Вводный курс


Валерий Станиславович Яценков

© Валерий Станиславович Яценков, 2018


ISBN 978-5-4490-4684-0

Создано в интеллектуальной издательской системе Ridero

Часть I. Теория

Глава 1. Введение

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

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

Объем и сложность материала вводного курса подобраны таким образом, чтобы уделяя по вечерам 1—2 часа на чтение и работу с компьютером, вы приблизительно за неделю смогли овладеть навыками программирования на языке Java в среде разработки NetBeans.

Разумеется, эта книга станет лишь первым шагом в изучении языка Java и среды разработки NetBeans. Впереди вас ждет поиск и усвоение огромного объема информации.

1.1 Особенности текста книги и архив файлов

Книга подготовлена и опубликована при помощи издательского сервиса Ridero. Это новый проект, который помогает издавать книги быстрее и делать их дешевле и доступнее.

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

В файловом архиве книги вы найдете полные исходные коды всех примеров программ из книги, а также дополнительные файлы с наборами иконок для графического интерфейса. Архив можно скачать из файловых хранилищ


Dropbox:

https://www.dropbox.com/s/wo0u8916cnyc31p/Java_Files.zip?dl=0


Яндекс Диск:

https://yadi.sk/d/fIoAfXyp3Sj8gP

1.2 Идеология Java

Разработка языка Java началась в 1990 году под названием Oak (дуб) – не самое лучшее название для интеллектуального продукта. В процессе работы значительно изменилась концепция языка, а затем и его название. Окончательный вариант открытого и общедоступного языка Java был обнародован в 1995 году.

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

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

Язык Java популярен еще и потому, что применяется при разработке приложений Android. Можно писать приложения на «чистом» языке Java (в реализации Java Mobile) или использовать среду разработки, предоставляющую расширенные возможности. В любом случае знание Java является обязательным условием для разработчика приложений Android.

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

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

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

Давайте разберемся, как работает Java—программа.

1.3 Как работает Java

Языки программирования общего назначения можно разделить на интерпретирующие и компилирующие.

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

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

Java – необычный язык программирования. При компиляции программа на языке Java превращается в специальный байт-код. Он представляет собой набор унифицированных инструкций для специальной Java-машины (Java Virtual Machine, JVM), установленной на компьютере. Иными словами, программа выполняется внутри виртуальной машины, которая служит «посредником» между программой и компьютером.

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

Таким образом, вместо того, чтобы разрабатывать разные версии прикладной программы, достаточно установить на компьютер готовую и бесплатную Java-машину, которая учитывает и реализует особенности операционной системы. Виртуальные машины Java для большинства операционных систем можно скачать на сайте www.java.com. В операционную систему Android поддержка Java встроена по умолчанию.

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

Чтобы избежать путаницы, отметим, что язык JavaScript не имеет ничего общего с языком Java. Это язык для написания сценариев (скриптов), которые включены в состав HTML-страниц и выполняются средствами браузера. Слово «Java» было добавлено компанией Netscape – разработчиком языка JavaScript – исключительно из маркетинговых соображений.

1.4 Что читать дальше?

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

Хабибуллин И. Ш. Самоучитель Java. – 3-е изд., перераб. и доп. – СПб.: БХВ-Петербург, 2008. – 768 с.

Хабибуллин И. Ш. Java 7 в подлиннике. – СПб.: БХВ-Петербург, 2012. – 768с.

Прохоренок Н. А. Основы Java. – СПб.: БХВ-Петербург, 2017. – 704 с.

Васильев А. Н. Программирование на Java для начинающих. – Москва: Издательство «Э», 2017. – 704с.

Монахов В. В. Язык программирования Java и среда NetBeans. – СПб.: БХВ-Петербург, 2012. – 704с. + DVD.

1.5 Другие книги автора

Друзья, если вы интересуетесь техническим творчеством и программированием микроконтроллеров, вам могут пригодиться эти книги:



https://www.ozon.ru/context/detail/id/141872715/



https://www.ozon.ru/context/detail/id/135412298/

Глава 2. Подготовка к работе с Java

Давно остались в прошлом времена, когда программист набирал исходный код программы в текстовом редакторе, а затем запускал компилятор в командной строке и мучительно пытался разобраться в сообщениях об ошибках. Теперь любой серьезный язык программирования располагает интегрированной средой разработки (Integrated Development Environment, IDE). Это специальный набор инструментов разработчика, который может включать в себя редактор со множеством удобных функций, средство управления проектами, компилятор, отладчик, эмулятор мобильных устройств, справочную систему и многое другое.

В настоящее время для программирования на языке Java применяется несколько популярных сред разработки: NetBeans, Eclipse, JDeveloper, JBuilder, IntelliJ IDEA.

В этой книге вы познакомитесь с бесплатной средой NetBeans, которая разработана корпорацией Sun и распространяется с открытым исходным кодом. Допускается использование среды в коммерческих разработках. Название среды содержит игру слов: Java – сорт кофе, Beans – зерна. В тоже время словосочетание Net Beans можно перевести как «сетевые компоненты», потому что дополнительные компоненты IDE можно скачивать из сети по мере необходимости.

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

Возможности среды можно расширять при помощи бесплатных плагинов, которые размещены в специальном репозитории.

2.1 Устанавливаем JDK и NetBeans

Чтобы приступить к программированию на Java, вы должны установить на свой компьютер два обязательных компонента: JDK и NetBeans.

JDK (Java Development Kit) – средство разработки, в состав которого входит компилятор, библиотеки, справочная документация, и собственно сама среда выполнения программ JRE (Java Runtime Environment). В принципе, можно обойтись этим набором, но вам придется набирать код программы в каком-то текстовом редакторе и вручную запускать компилятор из командной строки. В таком случае не может быть речи о средствах отладки или визуального редактирования интерфейсов.

Для полноценной и комфортной работы после установки JDK необходимо установить оболочку NetBeans. Причем установку следует выполнять именно в таком порядке – сначала JDK, затем NetBeans. В противном случае вам придется вручную указать пути к файлам JDK в настройках NetBeans. Но мы поступим еще проще и воспользуемся составным пакетом «JDK + NetBeans Bundle». Установщик пакета сделает за нас всю работу.

Войдите на сайт Oracle по адресу

http://www.oracle.com/technetwork/java/javase/downloads/jdk-netbeans-jsp-142931.html

Если к тому моменту, когда вы читаете эту книгу, изменится версия JDK или NetBeans IDE, то указанная ссылка может перестать работать. В таком случае введите в любую поисковую систему ключевые слова «JDK NetBeans IDE bundle», и это будет проще, чем искать новую ссылку на запутанном корпоративном сайте Oracle.

Щелкните по пункту «Accept License Agreement» (Принять лицензионное соглашение) и скачайте установочный файл для своей операционной системы. Обратите внимание на соответствие разрядности. В примере на рис. 2.1 выбран пакет для 32—разрядной ОС Windows.


Рис. 2.1 Выбор установочного файла JDK + NetBeans bundle


Запустите установочный файл и согласитесь со всеми пунктами настроек. На момент подготовки книги распространялась версия NetBeans IDE 8.2. При первом запуске NetBeans наверняка обнаружит обновления и предложит загрузить их. После установки обновлений можно приступать к знакомству с интерфейсом NetBeans и написанию первой программы.

2.2 Соглашение об именах

Прежде, чем приступить к созданию первого проекта, сделаем небольшое отступление и перечислим основные правила составления имен в языке Java. Обязательно ли нужно выполнять эти правила? Если на званом ужине вы будете вытирать руки о скатерть, то вас не прогонят из-за стола. Но второй раз не пригласят. С выполнением общепринятых соглашений в программировании похожая ситуация. Отклонение от правил именования в большинстве случаев не вызовет ошибку компиляции, но затруднит понимание исходного кода другими программистами. Более того, даже вам будет трудно разрабатывать и отлаживать собственный код, обращаясь к чужим примерам с корректно заданными именами. Надо с первых шагов приучить себя к строгому соблюдению как формальных, так и неписаных правил программирования. Работоспособность приложения – не единственный критерий качества кода.

Язык Java регистрозависимый. Например, filesize и fileSize – разные имена. Тем не менее, лучше избегать использования имен, которые различаются лишь регистром символов, чтобы не затруднять понимание и отладку программы. Обычно «горбатый регистр» (Camel casing) применяется для выделения первых букв слова в составном имени, например, MyFirstClass.

Итак, вот пункты соглашения об именах Java (в скобках приведены примеры):

Пакеты и подпакеты – существительные в единственном числе, только в нижнем регистре, в составных именах слова разделяются подчеркиванием (input_control).

Классы и интерфейсы – существительные или словосочетания в значении существительного. Первые буквы слов в верхнем регистре, слова не разделяются (UserInfo). Имена классов—исключений заканчиваются словом Exception (InvalidCountException).

Классы—наследники – рекомендуется использовать имена, в которых содержится имя родительского класса (LocalConnect extends Connect). Исключение составляют имена классов—наследников, из которых очевидно, что они наследуют суперкласс (Oval extends Figures).

Поля и локальные переменные – существительные в нижнем регистре (size). Если название составное, то следующие слова начинаются с заглавной буквы, разделители не используются (imageHeight). Имена переменных должны соответствовать типу хранимых данных. Например, имя переменной currentUser интуитивно соответствует номеру пользователя (целое число). Для хранения имени пользователя (строка) лучше использовать переменную с именем currentUserName.

Переменные типа static final – существительные или словосочетания в верхнем регистре, слова разделены подчеркиваниями (MAIN_COLOUR).

Методы – глаголы в нижнем регистре (calculate) или словосочетания, отражающие действие (printAmount). Глаголы должны максимально полно и точно описывать действие, которое выполняет метод.

Имена методов, выполняющих чтение или изменение значений полей класса, должны начинаться на get и set соответственно (getFileSize, setFontColour). Исключение составляют методы, возвращающие значения полей типа boolean. Их имена должны начинаться на is (isFileOpen).

Имена методов, выполняющих преобразование к другому типу данных, начинаются на to (toString).

Имена методов, которые создают и возвращают объект, начинаются с create (createDataset).

Имена методов, инициализирующих поля класса или элементы графического интерфейса, начинаются с init (initWindow) и применяются только в конструкторе класса.


2.2.1 Зарезервированные слова и литералы

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


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.

На страницу:
1 из 3