Hello, World!

Задача

Конечно начнем с самой известной задачи (если не считать квайнов).

Необходимо вывести в стандартный поток вывода текст «Hello, World!»

Тесты

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

input output
Hello, World!

Решение

Вот пример того, как можно решить эту задачу на Java:

Запустить на выполнение код.

Пояснения

Этот «простой» код даёт нам показывает как высока планка вхождения в программирование на Java. Конечно, можно пока рассматривать всё, кроме «Hello, World!» как некоторую важную, но бессмысленную мантру и старательно воспроизводить её в первых программах. Но это плохой подход. Правильным будет попытаться разобраться с каждым словом. Если это получится, то самая сложная часть курса будет позади.

  1. class — указывает на то, что далее следует определение некоторого нового тип объектов (класса). При этом указывается в каких переменных (полях) будут храниться значения свойств объекта и какими методами (функциями) можно будет пользоваться. Синтаксически методы легко отличить от полей — после названия метода следуют круглые скобки со списком формальных параметров (иногда пустым) В нашем примере полей нет, но есть один метод с названием main.
  2. public — указывает, что поле или метод (в данном случае метод main) можно использовать (вызывать) в любых посторонних классах. В нашем случае , поскольку метод main будет вызываться виртуальной машиной при старте программы, виртуальна машина должна иметь на это право.
  3. Main — имя того класса, который мы будем дальше придумывать. Может Быть любым, например, «X» или «Qwerty», но принято начинать с прописной (большой) буквы.
  4. static — указывает, что поле или метод (в данном случае метод main) принадлежит самому классу, а не объектам. Такие поля существуют даже тогда, когда нет вообще ни одного объекта данного типа (класса). И, соответственно, методы класса можно вызывать до создания объектов данного типа. Для метода main важно быть статическим, поскольку он будет вызван первым при запуске программы. в этот момент каких-либо объектов ещё нет — их просто некому было создать.
  5. void — указывает какого типа значение вернёт функция main при вызове. Виртуальная машина JVM не ожидает от main каких-либо результатов и тип возвращаемого значения — void (пусто).
  6. main — имя метода. Именно так должен называться метод, который вызовет виртуальная машина при попытке «запустить» какой-либо класс. Если Вы хотите, чтобы класс можно было запускать на выполнение в виртуальной машине, напишите для него методmain.
  7. String[] args — аргумент функции main. При запуске программы (например командой в окне консоли) можно указать несколько слов через пробел. Эти слова будут переданы функции main через массив строк. Здесь
    • String — имя кем-то написанного класса (такое же как и наш класс Main).
    • args — имя параметра, через который в функцию main попадут слова из командной строки при запуске. Имя может Быть любым, например, «x» или «qwerty», но принято начинать со строчной (маленькой) буквы.
    • [ ] — признак того, что параметр args является массивом. Квадратные скобки можно ставить до (слева) или после (справо\а) args. У каждого варианта своя философия, что подумают пчёлы.
  8. System.out.println(…) вызов метода println(). Метод принадлежит объекту, который хранится в статическом свойстве out некоторого класса System. Метод устроен так, что выводит (печатает) в стандартный поток вывода строку, которую ему передали в качестве аргумента. ln в названии метода намекает, что после вывода строки будет сделан переход на новую строку.

Дальше

Попробуйте воспроизвести решение по памяти в среде ideone. Если всё прошло успешно, посмотрите эту статью, чтобы разобраться с вводом данных.