Вместо эпиграфа: "Если хочешь в чём-то разбираться - напиши об этом книгу"(с) С.Ф. Корндорф.
Итак, как и обещался, начинаю цикл постов о сем милом языке программирования. Сегодня устанавливаем среду разработки для программ, пишем первую программку и немного философствуем.
Почему Java?
Итак, почему для программирования я выбрал Java. А тут всё просто. Большинство приложений для мобильных устройств написано именно на этом языке программирования. Вот такой нежданчик. Все помнят старые телефоны с приложениями в формате .jar? Так вот, это формат именно Java-приложений. И, конечно, все знают такую платформу, как Android. Внезапно, но большая часть приложений для неё так же написана на этом языке.
Однако, можно писать не только мобильные приложения, но и для обычных компьютеров и для серверов. Если я не ошибаюсь, много игр вконтактике написано на Java.
Так же, Java - язык кроссплатформенный. Так, не надо выпадать в осадок, слово, конечно, страшное, но я сейчас всё объясню:) Кроссплатформенность означает то, что написав код один раз, его можно компилировать для любой машины без привязки к архитектуре операционной системы. Проще говоря, пишешь один раз, а собираешь под что угодно. Это достигается за счёт выполнения кода средствами виртуальной Java-машины, то есть дополнительной программки, которая и выполняет программы. То, что написано под Linux без лишних усилий скомпилируется под Windows. Контрпример - язык ассемблера, который работает почти напрямую с процессором и при изменении процессора или системы может оказаться, что код программы придётся переделывать. Если совсем простым языком... Одна и та же деталька, например, болт, может без лишней доработки напильником и кувалдой подходить ко многим агрегатам. Или одно и то же колесо к разным машинам... Или разные сигареты к одному человеку. Стоп, это меня уже не в те степи.
Так же, язык Java привлёк меня синтаксисом - то есть основными конструкциями языка, то есть ключевые слова определяющие, что делать. Синтаксис здесь Си-подобный. Это ни хорошо, ни плохо. Просто мне, как пишущему на Си под контроллеры, - очень помогло при переходе. Об этом я расскажу в следующем посте, когда я буду описывать основные конструкции языка.
Если продолжать о синтаксисе - при правильном стиле код самокомментируется. Это означает, что к коду не надо писать комментарии о принципах его работы, достаточно прочитать код и станет понятно, что он делает.
В качестве примера можно привести, например, такую строчку:
code:
System.out.println("Hello!");
Смотрим на неё, медитируем... А теперь разбираемся. Итак, в данной строке вызывается метод println статического объекта out класса System. Опять выпали в осадок? Да что ж такое-то... Кто знает английский? Давайте переводить эту строку. В переводе получается Система.вывод.напечатать_строку("Привет!"). ln - это сокращение от line. Так ведь понятнее, правда? По сути этот код просто выводит указанную ему строку в консольку. Но это вы ещё увидите.
Большая часть классов и методов называется понятно и простого перевода названия хватает, чтобы понять что это такое и с чем его едят.
Что, опять выпали в осадок? А, я ж забыл объяснить про классы-объекты и методы. Начну с конца. Метод - это функция, которую могут выполнять все объекты одного класса. Например, у бутылки пива есть методы "кончиться", "разбиться", "разлиться по стаканам". Но это грустные методы. Есть ещё метод "выпиться":)
Объект - это экземпляр класса, то есть один объект из множества. Например, есть у нас класс "Бутылка пива", и объекты этого класса "Невское", "Пикур", "Окское" и так далее. То есть, класс описывает общие свойства объектов, то есть поля или внутренние параметры, или переменные - это три названия одного и того же, и методы, то есть функции или действия, которые этот объект может выполнять. Вроде так.
Собственно, всё программирование строится в основном на этих трёх понятиях. В Java всё есть объект. В серьёзных программах объекты создаются, обмениваются информацией через методы, создают новые объекты для своих нужд. Например, объект класса "Бутылка пива" может создать объект класса "Бутылка водки", который, в свою очередь, может создать объект класса "Закуска". И у каждого из них есть свои методы, которыми и пользуется программист. Например, методы создания объектов - они называются конструкторами. Но это так, чуть-чуть и для справки. Подробно это будет разбираться позже, а пока советую запомнить, но сильно голову не забивать:)
Среда разработки
В качестве среды разработки я уже давно выбрал Eclipse. Она бесплатна, она устанавливается на любую систему, от Windows до MacOS, она затачивается под что угодно - от программирования на Java, для чего она и разрабатывалась, до программирования и отладки контроллеров. Крайне гибкая штука.
Так же она очень удобна, особенно для начинающих. Запомните комбинацию Ctrl+Space(Контрал+пробел), она подсказывает имена классов, помогает в выборе методов, подсказывает имена для переменных. Очень полезно для новичка, который не знает, какие вообще есть методы в классе, а так нажал, и сиди читай краткие описания, да выбирай, что тебе больше нравится.
Кроме того, есть иерархическая схема проекта. В ней, как на ладони видна вся программа - это облегчает навигацию по ней.
Ладно, хватит разговоров, пора действовать:)
Начнём установку.
1. Идем на сайт
http://www.eclipse.org/ Там тыкаем в Download, выбираем вариант Eclipse IDE for Java Developers, выбираем архитектуру и скачиваем архив. Там выскочит окно пожертвований, ничего не трогайте закачка начнётся сама. Ладно, вы скачивайте, а я покурю пойду:)
/*Через 4 минуты*/
2. Скачалось? Славно, мы почти у цели. Распаковываем архив, куда удобно. Запускаем eclipse.exe или eclipse, если Linux. Не запустилось? Плюнуло ошибкой? Тогда смотри пункт 3.
3. Идем
Вот сюда, ставим кружочек на Accept License Agreement и скачиваем версию под свою систему. Тонкость - если у вас 32-разрядный Windows скачивайте оффлайн версию. Качаем и устанавливаем и пробуем запустить ещё раз, на этот раз уже должна запуститься без ошибок.
Итак, запустилась у нас Eclipse. Должно появиться вот такое окошко.
[700x405]
Это он спрашивает у нас рабочее пространство или, проще говоря, куда ему проекты складывать. Выбираем папку, ставим галочку, чтоб больше не спрашивал и жмякаем ОК.
При первом запуске нас встречает вот такое окно.
[700x393]
Это стартовое окно, его можно закрыть крестиком на вкладке, оно нам не сильно нужно. Только не перепутайте крестики и не закройте всю Eclipse:)
Всё, Eclipse готова к работе. Начинаем писать первую программку:)
Первая программка или Hello World.
Следуя традиции, напишем первую программку, которая выводит строку в консоль:)
Нажимаем File-New Project-Java Project.
Должно открыться вот такое окно.
[700x393]
Вводим имя проекта и нажимаем Finish.
В панели слева появится наш новый проект. Разверните его, тыкнув в стрелочку.
Выбираем папку scr, нажимаем правой кнопкой мыши и выбираем New-Class. Отроется вот такое окошко.
[529x700]
Вводим имя(Name) и ставим галочку на public static void main(String[] arg), жмякаем Finish.
У нас откроется файл с классом и началом метода main. Его-то нам и надо дополнить до первой программы. Помните строку Система.вывод.напечатать_строку()? Пишем её, только в английском варианте, а в скобках, в кавычках пишем строку, "Hello World", например, или что больше понравится. Не забудьте после скобки поставить ; иначе не заработает. Этот символ означает конец команды Должно получиться примерно так.
[700x393]
Теперь нажимаем Ctrl+S, то бишь сохраняем проект и выбираем Run-Run или нажимаем Ctrl+F11. Смотрим вниз... Нет, в нижнюю часть монитора:) Там есть миниатюрное окошко Console, в котором и должна быть строка, которую мы попросили вывести нашу милую программу. То есть получиться должно примерно следующее.
[700x393]
Ну вот, вуаля, вы восхитительны, ваша первая программа работает:) Можете поиграться и подобавлять ещё строчек для вывода, это та же команда, просто строка в скобках(кстати, она называется параметром метода) будет другой.
Главное, чтобы не получилось вот так:)
[700x666]
Ладно, засим пока всё. Если что-то непонятно, спрашивайте в комментах, а я, в силу своих знаний, постараюсь объяснять:)
Спецобращение к камрадам, которые уже давно пишут на Java. Если вы заметили какие-то неточности, или какие-то ошибки в моих выкладках - напишите мне и я всё поправлю. Я не претендую на звание истины в последней инстанции, бо сам только изучаю сей язык, так что готов выслушать конструктивную критику:)