25 мар. 2015 г.

Первая программа на Java – Hello World! Часть 1.

one_more_step03Даже путь в тысячу ли начинается с первого шага. (千里之行,始于足下).

Традиция использования фразы «Hello, world!» в качестве тестового сообщения в первой программе на изучаемом языке была введена в книге «Язык программирования Си» Брайана Кернигана и Денниса Ритчи, опубликованной в 1978 году.

Не будем нарушать эту хорошую и устоявшуюся традицию и создадим нашу первую программу Hello World на Java.

Хотя до этого я уже приводил в своем блоге примеры программ, но это было лишь для того, чтобы на практике продемонстрировать лексическую структуру языка и использование Unicode.

Сейчас же мы создадим и разберем из чего состоит простейшая программа на Java.

Сразу стоит отметить, что в Java все является объектом, исключение составляют только примитивные типы. Что это такое и с чем едят мы рассмотрим чуть позже. А пока программу в студию!

HW0001

На этот раз я создал программу “Hello World” в Eclipse, дабы дальше было проще работать над ее будущими мутациями.

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

Java до мозга костей объектно-ориентированный язык.

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

И так быстренько пробежимся по строчкам программы чтобы понять что они значат.

Строка

public class HelloWorld

Содержит модификатор доступа public и объявление class. Оба этих слова являются ключевыми словами языка, которые мы рассматривали до этого.

Модификатор public означает что класс доступен другим классам и программам извне. О модификаторах доступа будем говорить позже.

Начало класса отмечается служебным словом class, за которым следует имя класса, выбираемое произвольно, в данном случае это имя HelloWorld. Все, что содержится в классе, записывается в фигурных скобках и составляет тело класса (class body).

В следующей строке идет объявление метода класса

public static void main(String[] args)

Модификатор public мы уже упоминали, модификатор static означает, что данным метод main, может быть вызван без создания экземпляра класса. Пока все это может быть не понятно, но все равно топаем дальше. Модификатор void означает что наш метод main ни чего не возвращает, то есть не возвращает ни каких значений. Единственный метод нашей программы называется main – это точка входа в программу, то есть то от куда она начинает исполнятся.

Далее идут параметры (String[] args) которые принимает метод main. Это массив строк. Сюда передаются параметры (аргументы) командной строки. Мы это рассмотрим чуть позже.

Следующая строка

System.out.println("Hello World!")

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

Строка System.out.println означает, что в классе System, входящем в стандартную библиотеку Java, существует константа с именем out, содержащая указатель на экземпляр одного из классов Java, в данном случае класса PrintStream, в котором есть метод println(). Все это, пока, может звучать как заклинания Гарри Поттера, но позднее все станет ясно и понятно. Такова магия Java!

Действие метода println() заключается в выводе заданного ему аргумента в выходной поток, связанный обычно с выводом на экран текстового терминала. После вывода курсор переходит на начало следующей строки экрана, на что указывает окончание ln, само слово println — сокращение слов print line. В составе стандартной библиотеки Java есть и метод print(), оставляющий курсор в конце выведенной строки.

Приведу кусочек скрина из класса System (файл System.java) стандартной библиотеки:

HW0002

Тут как раз таки показана наша константа out. Далее еще немного посмотрим на класс PrintStream:

HW0003

И на его метод println() c аргументом String:

HW0004

Я думаю, что хоть все это особой ясности и не внесло, но на подкорку должно осесть Улыбка

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

Отцы основатели Java озаботились этим на самых ранних стадиях развития языка и выпустили такой документ, который называется "Code Conventions for the Java Programming Language". Я его уже не однажды упоминал в блоге. Так вот, опять же рекомендую с ним настоятельно ознакомится. Некоторые правила из него приведу тут, вдруг кто не умеет читать на ангельском языке:

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

Приведу, даже для убедительности скрин из этого документа:

HW0005

Но вообще, 24 страницы данного документа может осилить каждый.

Ну и теперь обещанные видео по мега программе HelloWorld. Некоторые я уже публиковал, а некоторые нет.

Hellow World in Java. IntelliJ IDEA
Hello World in Java. Eclipse
Hello World in Java.
Hello World in Java.

Следующее видео просто для коллекции и хохмы. Какой-то отрывной человечек его создал Улыбка

Hello World in Java с реальным пацанчиком :)
Hello World in Java. IntelliJ IDEA
Hello World in Java. NetBeans
Hello World in Java.
Hello World in Java.

Ну я думаю более чем достаточно уже видео Улыбка смотреть не пересмотреть Улыбка

1 комментарий:

  1. ZhirniToni классик. Но не для начинающих. У меня опыт 4 месяца. Люблю пересматривать его видео.

    ОтветитьУдалить