Java примеры программ для начинающих с решением
Простые программы на java хороши для оценки навыков программирования программиста. Вы найдете вопросы, связанные с кодированием, практически в любом интервью.
Идея этих программных вопросов состоит в том, чтобы изучить мыслительный процесс кандидата. В большинстве случаев первоначальное решение неэффективно, что требует дополнительных вопросов и выяснения, может ли собеседник улучшить его еще больше или нет.
Простые Программы на Java
Вот я предоставляю 10 простых программ на Java. Они хороши для практики кодирования и могут быть использованы в интервью. Пожалуйста, попробуйте написать решение самостоятельно, прежде чем смотреть на ответ, это придаст вам больше уверенности, и вы сможете проверить, хорошо ли ваше решение или нет. Обратите внимание, что решения могут быть улучшены в дальнейшем, поэтому, если у вас есть лучший подход, пожалуйста, сообщите нам об этом в комментариях.
Переверните строку
- Проверка Null, чтобы избежать Исключения NullPointerException .
- Использование StringBuilder вместо StringBuffer для повышения производительности.
- Создание локальной переменной для длины входной строки, вместо того, чтобы иметь ее в состоянии if. Чем меньше вызовов функций, тем выше производительность.
- Можно было бы улучшить, приняв вводимые пользователем данные, а не данные статического тестирования
Ряд Фибоначчи
- Программа может быть улучшена путем ввода пользователем количества целых чисел для печати.
- Обратите внимание на использование функции System.out.print для печати чисел в одну строку, хорошая работа.
- Числа Фибоначчи начинаются с 0 или 1, вышеуказанная программа может быть расширена, чтобы принимать вводимые пользователем данные в качестве отправной точки.
- Красиво написанная простая программа, приятно видеть, что нет необходимости в рекурсии или сложном кодировании.
Проверка простых чисел
Проверьте наличие строки палиндрома
- Создайте новую строку в обратном порядке с помощью StringBuilder, а затем проверьте, совпадает ли ее значение с исходной строкой.
- Реализацию можно улучшить, сравнив символы с обоих концов. Если длина строки равна 5, то это палиндром, если символы в и. Нет необходимости создавать отдельную строку. Попробуйте написать код для этого и опубликуйте в разделе комментариев.
Сортировка массива программно
- Существует множество алгоритмов сортировки, пузырьковая сортировка проще в реализации.
- Сортировка сложна, и вы должны полагаться на методы Java API для сортировки коллекции или массива для повышения производительности, которые снова изобретают колесо.
- Также упомяните использование Сопоставимого и компаратора при сортировке, это добавит вам бонусные баллы.
Прочитайте 3 входные строки, объедините и распечатайте
Если вы читаете этот код, вы должны убедиться, что он соответствует всем пунктам, упомянутым выше. Попробуйте написать чистый и простой код, следуйте рекомендациям, соглашениям об именах методов и переменных, и у вас все получится.
Удалите все совпадающие элементы из списка
Мы можем легко поменять местами числа, используя временную переменную. Но если вы можете обойтись без этого, то это потрясающе.
Это все для простых java-программ для интервью. Просмотрите их и попробуйте изучить лучшие способы написания кода и произвести впечатление на интервьюера.
Практические задачи по Java — для курсов и прочих занятий
Несколько вводных слов
Последние несколько лет я читаю курс по программированию на Java. Со временем он менялся — то добавлялись, то выкидывались разные части, менялась последовательность тем, менялся подход к построению плана самих занятий, и так далее. То есть, курс совершенствовался. Одной из основных проблем, возникших при подготовке курса — это задачи. О них и пойдёт речь.
Дело в том, что каждое моё занятие состоит из двух частей. На первой я выступаю в роли лектора — рассказываю с примерами кода о какой-то новой теме (классы, наследование, дженерики и так далее). Вторая часть — практическая. Очевидно, что нет смысла просто рассуждать о программировании, надо программировать. Приоритет на занятиях — решение задач, то есть программирование чего-то как-то. Программирование на занятиях отличается от программирования дома, так как на занятиях можно задать вопрос, показать код, получить быструю оценку кода, комментарии по улучшению, исправлению написанного. Очень легко было найти задачи для самых первых занятий. Задачи на циклы, условные операторы, и ООП (к примеру, написать класс «Собака» или класс «Вектор»). Сервисы вроде leetcode позволяют даже проверить правильность решения таких задач сразу, онлайн. Но какие задачи дать студентам на занятии, которое было посвящено коллекциям? Потокам? А аннотациям? За несколько лет я придумал, или переработал несколько таких задач, и эта статья, по сути, является сборником этих задач (к некоторым задачам прилагается решение).
Конечно, все задачи уже где-то появлялись. Однако, эта статья ориентирована на преподавателей курсов по программированию (для языков, похожих на Java, большинство задач подойдёт), или тех, кто преподаёт программирование частным образом. Эти задачи можно использовать «из коробки» на своих занятиях. Изучающие Java тоже могут попробовать решать их. Но такие решения требуют сторонней проверки и оценки.
Некоторые самые простые задачи, которые уже десятилетия все используют, я тоже включил в эту статью. Пожалуй, для того, чтобы не начинать сразу с абстрактных классов.
У Вас уже должны быть установлены среда разработки приложений NetBeans и JDK (Java Development Kit).
Запустите NetBeans. В меню выберите File/NewProject/Java/ и введите pro1 в ответ на запрос имени проекта, а затем нажмите Finish. При этом будет создан файл Pro1.java с классом Pro1 и пустым методом main() в нем.
Добавим следующий код в этот метод:
Для запуска программы выберем в меню Run /Run Project. В нижней панели отобразится результат работы программы:
Построим изучение основ языка Java на аналогиях, сравнивая его с языком C++. В начале рассмотрим программы, подобные простейшим MFC приложениям.
Начнем с простого, создадим программу, которая показывает пустое окно.
Исходный код программы:
Последовательность выполнения (обозначена 1-4) практически та же, что и для простейшего оконного MFC приложения. При разработке Java приложения программист использует базовые классы, строит производные от них классы. Проект программы может содержать несколько классов. Один из классов проекта содержит функцию main, которая есть точкой входа в программу. Имя класса должно совпадать с именем файла, в котором класс описан.
Java – полностью объектно-ориентированный язык, даже в большей степени, чем C++. Функции и переменные, не привязанные к контексту какого-либо объекта, больше не присутствуют в системе. Примером есть функция main и объект приложения app, которые в Java приложении отнесены к создаваемому классу приложения. В MFC приложении отсутствует функция main (WinMain спрятана в MFC каркасе) и объект приложения создается как глобальная переменная.
Полностью исключена препроцессорная обработка. Операция включения в программу файлов-заголовков с описаниями классов (include) заменена на операцию import, которая читает подготовленные бинарные файлы с описанием классов. Для поддержки пользовательских интерфейсов язык Java содержит библиотеки AWT и Swing, позволяющие создавать и поддерживать окна, использовать элементы управления (кнопки, меню, полосы прокрутки и др.), применять инструменты для создания графических приложений.
Теперь создадим форму для подсчета ворон на заборе. Для этого будем отображать текущее количество ворон и с помощью двух кнопок добавлять или вычитать по одной.
Вначале создадим метку (countLabel) а также две командные кнопки (addCrow и removeCrow) и разместим компоненты в окне:
Добавление событий
Пришло время добавить немного интерактивности. Нам нужно сделать 3 вещи:
- Научить кнопку addCrow добавлять 1 к переменной voron.
- Научить кнопку removeCrow вычитать 1 из переменной voron.
- Научить кнопку countLabel обновлять свое значение в зависимости от содержимого переменной voron.
Исходный код программы приводится ниже.
В MFC приложениях события идентифицировались именем константы в таблице-макросе, отнесенной к классу. Такое описание не имело ничего общего с ООП.
В Java для определения события используются три действующих лица – объект-источник события, объект-слушатель события и объект-событие.
Мы создаем сначала кнопку (объект-источник). При вызове метода addActionListener создается объект класса ActionListener (слушатель). При вызове обработчика события (метод actionPerformed) создается объект класса ActionEvent (событие), в котором объединены параметры события.
Объекты – источники событий должны быть объектами класса, который имеет методы для регистрации слушателя addXXXListener и отключения слушателя removeXXXListener. Здесь под XXX подразумевается некоторое имя события. Например, ActionListener или AWTEventListener, и т.д.
Один из подходов добавления событий состоит в том, чтобы создать для каждого компонента внутренний анонимный (без имени) класс непосредственно в методе addActionListener. Описание класса состоит только из определения метода actionPerformed. Синтаксис может показаться вам немного неуклюжим, но запомните его, в дальнейшем привыкните.
Для создания картинки необходимо в класс окна добавить панель – элемент класса, производный от класса Jpanel. Объектами на панели могут быть подгружаемые картинки, либо рисунки, выполненные инструментами Java 2D API.
Исходный код программы приводится ниже.
Анимация представляет отображение последовательности изображений, которые создают иллюзию движения. В рассматриваемой ниже программе реализуется анимация звезды в окне.
В этом приложении продемонстрировано подключение события непосредственно к классу, а не к объектам. Подключение событий к объектам было показано выше (см. Оконное приложение с обработкой событий).
Дополнительно к рассмотренной реализации класса Board ниже приводятся две альтернативные версии.
Board.java (2-я версия)
В этой версии используем библиотеку java.util.Timer вместо javax.Swing.Timer. При этом вместо интерфейса ActionListener для анимации используется объект класса ScheduleTask, производный от класса TimerTask. Таймер каждые 10 мс вызывает метод run () класса ScheduleTaskclass. Начальная задержка составляет 100 мс.Board.java (3-я версия)
Ошибки, возникшие в программе во время её работы обрабатываются через исключения. Обработка исключений произведена в программе с помощью операторов try…catch.
Snake (Змея) – одна из старейших классических видеоигр. В этой игре голова змеи перемещается с помощью клавиш управления курсором, хвост следует за ней.
Цель состоит в том, чтобы съесть столько яблок, как это возможно. Первоначально тело змеи состоит из 2-х суставов. Каждый раз, когда змея ест яблоко, ее тело растет. Змея должна избегать стен и своего собственного тела, поскольку в этом случае игра заканчивается.
Исходный код программы приводится ниже. Файлы рисунка «1.jpg» и «2.jpg» размещается в директории, где находятся файлы классов проекта. Анимация реализуется через рассмотренный выше способ использования таймера (см. Анимация изображения).
Контрольные задания
Ознакомиться с программой “Snake” и последовательно модифицировать ее:
Краткий обзор сетевых приложений
Ниже, на 3-х сетевых Java приложениях рассмотрено, как можно написать программы без знания всей глубины сетевых технологий (ресурсы операционной системы, маршрутизация между сетями, поиск адресов, физическая среда передачи и т.д.). Но все же вкратце рекомендуется ознакомиться с теоретическими основами разработки сетевых приложений на Java.
В приложениях используется клиент-серверная парадигма, которую примерно можно определить следующим образом:
- Одна из программ, называемая сервером, ожидает, пока программа-клиент подключится к ней.
- Клиент подключается.
- Сервер и клиент обмениваются информацией.
- Связь между клиентом и сервером закрывается.
Каждое из приложений демонстрирует решение определенной задачи:
– Приложение “A Date Server and Client” обеспечивает простую одностороннюю связь. Сервер отправляет данные только одному подключенному клиенту.
– Приложение “A capitalize server and client” демонстрирует двустороннюю связь сервера с множеством подключенных к нему клиентов.
– Игра для двух игроков “Крестики-нолики” показывает работу сервера, который должен следить за состоянием игры и информировать клиентов, чтобы каждый мог обновить свои данные в соответствии с изменениями у другого клиента. Т.е., сервер выступает в качестве посредника при общении 2-х клиентов между собой.
При запуске программы-клиента также появляется окно “Input”. После ввода в текстовое окно IP-адреса сервера (localhost) появляется окно “Message” с данными от сервера (текущая дата и время).
Исходный код программы-сервера (файл DateServer.java):
Программа-сервер постоянно находится в состоянии ожидания, она прослушивает (listen) сеть, ожидая запросов от клиентов. Программа содержит класс DateServer с единственным методом main. Причем, этот метод объявляется так, что он может выбросить исключение (throws IOException).
Затем создается объект out класса PrintWriter для вывода текста в поток. В параметрах конструктора указывается направление потока socket.getOutputStream() (выходной поток сокета) и задается автоматический сброс буфера (параметр autoFlush = true). Метод out.println (“текст”) обеспечивает запись текста в поток.
В бесконечном цикле while (true) можно передавать данные множеству подключаемых клиентов, если закомментировать break. Однако, при этом не предусмотрено закрытие объекта listener, оно возможно лишь через диспетчер задач (вызывается клавишами ctrl-alt-delete).
Исходный код программы-клиента (файл DateClient.java):
Вначале запускается dialog box с предложением ввести IP address сервера, затем клиент присоединяется к серверу (создается сокет s) и тот передает ему дату и время, которые отображаются в диалоговом окне.
Для получения данных от сервера открывается входной поток s.getInputStream(). А далее цепочка читателей: InputStreamReader читает байты из потока и преобразует их в символы; BufferedReader объединяет символы в строку. Строка отображается в диалоговом окне.
При запуске программы-клиента появляются окно “Capitalize Client” и окно “Welcome to the Capitalization Program” с текстовым окном для ввода IP-адреса сервера. После ввода IP-адреса сервера в окне “Capitalize Client” клиенту предлагается ввести строку . После ввода текста и нажатия клавиши Enter сервер получает строку, преобразует маленькие буквы в большие и возвращает обновленную строку клиенту.
Сервер позволяет подключаться нескольким клиентам.
Исходный код программы-сервера и программы-клиента приводится ниже.
Программа-сервер (файл CapitalizeServer.java):
В классе Capitalizer (производном от Thread) с интерфейсом Runnable определены все методы, необходимые для создания потоков. В рамках класса необходимо определить метод run. Он получает управление при запуске потока методом start.
В отличие от предыдущей программы в этой организовано два бесконечных цикла. Один работает в пределах главного потока, другой запускается в каждом побочном потоке при подключении новых клиентов.
Программа-клиент (файл CapitalizeClient.java):
При запуске программы-клиента также появляется окно “Player X”, при повторном ее запуске – окно “ Player O”. Дальнейшее развитие и окончание игры видно из рисунка.
Исходный код программы-сервера и программы-клиента приводится ниже. Рисунки и размещается в директории, где находятся файлы классов проекта программы-клиента.
Программа-сервер (файл TicTacToeServer.java):
В функции main программы-сервера (файл TicTacToeServer.java) создается объект listener и запускается бесконечный цикл.
В начале цикла создается объект класса Game. В этом классе описаны данные и методы, которые позволяют следить за состоянием игры и информировать клиентов, чтобы каждый мог обновить свои данные в соответствии с изменениями у другого клиента. В классе Game также описан встроенный класс Player, производный от класса Thread.
Далее в цикле объект listener прослушивает и подключает 2-х игроков-клиентов. Каждый из игроков (player) передается на обслуживание побочных потоков, а в конструкторе создаются сокет, потоки ввода-вывода и клиентам передаются приветствие и метка (mark) – X или O. Метка служит для идентификации клиента.
Метод legalMove определен с ключевым словом synchronized. Такой метод запрещает нескольким потокам одновременный доступ к нему. Прежде, чем начать выполнять его, поток пытается заблокировать объект, у которого вызывается метод. При завершении исполнения (как успешном, так и в случае ошибок) производится операция unlock, чтобы освободить объект для других потоков.
Метод legalMove вызывается в потоке игрока, который пытается сделать ход и проверяет, или ход является правильным. То есть, игрок выполняющий ход, должен быть текущим игроком и квадрат, в котором он пытается сделать ход, не должен быть уже занятым. Если ход правильный, состояние игры обновляется (квадрат заполнен, следующий игрок становится текущим, и он уведомляется о своем ходе).
Программа-клиент (файл TicTacToeClient.java):
В функции main программы-клиента запускается бесконечный цикл. В нем создается объект client класса TicTacToeClient. При этом конструктор устанавливает связь с сервером, создает сокет, потоки ввода-вывода, панель с массивом квадратных ячеек board[i]. Объекту каждой ячейки добавляется событие mousePressed, при котором через поток вывода серверу передается номер выбранной ячейки.
Контрольные задания
- На основе игрового приложения ”Snake” создайте клиент-серверное приложение для 2-х игроков, где первый управляет движением змейки, а второй – движением жертвы. Победителем считается первый игрок, если он настигает жертву за отведенное время игры (определяется таймером), в противном случае побеждает второй игрок.
С программным кодом выполнения последнего задания можете ознакомиться по ссылке (Snake_net). Разработал приложение студент специальности «Компьютерные науки и информационные технологии» Лаврентий Антон.
А теперь, когда разъяснены самые основы объектно-ориентированного характера Java, рассмотрим несколько практических примеров программ, написанных на этом языке. Начнем с компиляции и запуска короткого примера программы, обсуждаемого в этом разделе. Оказывается, что эта задача не так проста, как может показаться на первый взгляд.
На заметку! Здесь и далее используется стандартный комплект разработчика Java SE 8 Developer’s Kit (JDK 8), предоставляемый компанией Oracle. Если же для написания программ на Java применяется интегрированная среда разработки (ИСР), то для компиляции и выполнения программ может потребоваться другая процедура. В таком случае обращайтесь за справкой кдо- кументации на применяемую ИСР
Ввод кода программы
Для большинства языков программирования имя файла, который содержит исходный код программы, не имеет значения. Но ejava дело обстоит иначе. Прежде всего следует твердо усвоить, что исходному файлу очень важно присвоить имя. В данном примере исходному файлу должно быть присвоено Example.java . И вот почему.
В Java исходный файл официально называется единицей компиляции. Он, среди прочего, представляет собой текстовый файл, содержащий определения одного или нескольких классов. (Будем пока что пользоваться исходными файлами, содержащими только один класс.) Компилятор Java требует, чтобы исходный файл имел расширение .java .
Как следует из исходного кода рассматриваемого здесь примера программы, определенный в ней класс также называется Example. И это не случайно. В Java весь код должен размещаться в классе. По принятому соглашению имя главного класса должно совпадать с именем файла, содержащего исходный код программы. Кроме того, написание имени исходного файла должно точно соответствовать имени главного класса, включая строчные и прописные буквы. Дело в том, что в коде Java учитывается регистр символов. На первый взгляд, соглашение о строгом соответствии имен файлов и классов может показаться произвольным. Но на самом деле оно упрощает сопровождение и организацию программ.
Компиляция программы
Чтобы скомпилировать программу Example, запустите компилятор ( javac ), указав имя исходного файла в командной строке следующим образом:
Компилятор javac создаст файл Example.class , содержащий версию байткода. Как пояснялось ранее, байт-код Java является промежуточным представлением программы, содержащим инструкции, которые будет выполнять виртуальная машина JVM. Следовательно, компилятор javac выдает результат, который не является непосредственно исполняемым кодом.
Чтобы выполнить программу, следует воспользоваться загрузчиком приложений Java, который называется java . Ему нужно передать имя класса Example в качестве аргумента командной строки, как показано ниже.
Выполнение данной программы приведет к выводу на экран следующего результата:
В процессе компиляции исходного кода каждый отдельный класс помещается в собственный выходной файл, называемый по имени класса и получающий расширение .class . Поэтому исходным файлам программ на Java целесообразно присваивать имена, совпадающие с именами классов, которые содержатся в файлах с расширением .class . При запуске загрузчика приложений java описанным выше способом в командной строке на самом деле указывается имя класса, который нужно выполнить. Загрузчик приложений автоматически будет искать файл с указанным именем и расширением .class . И если он найдет такой файл, то выполнит код, содержащийся в указанном классе.
Подробный анализ первого примера программы
Хотя сама программа Example.java небольшая, с ней связано несколько важных особенностей, характерных для всех программ на Java. Проанализируем подробно каждую часть этой программы. Начинается эта программа со следующих строк:
Эти строки кода содержат комментарий. Подобно большинству других языков программирования, Java позволяет вставлять примечания к коду программы в ее исходный файл. Компилятор игнорирует содержимое комментариев. Эти комментарии описывают или поясняют действия программы для тех, кто просматривает ее исходный код. В данном случае комментарий описывает программу и напоминает, что исходному файлу должно быть присвоено имя Example.java . Разумеется, в реальных прикладных программах комментарии служат главным образом для пояснения работы отдельных частей программы или действий, выполняемых отдельными языковыми средствами.
В Java поддерживаются три вида комментариев. Комментарий, приведенный в начале программы, называется многострочным,. Этот вид комментариев должен начинаться с символов /* и оканчиваться символами */ . Весь текст, расположенный между этими двумя парами символов, игнорируется компилятором. Как следует из его названия, многострочный комментарий может содержать несколько строк.
Перейдем к следующей строке кода анализируемой здесь программы. Ниже показано, как она выглядит:
В этой строке кода ключевое слово class служит для объявления вновь определяемого класса, a Example — в качестве идентификатора, обозначающего имя класса. Все определение класса, в том числе его членов, должно располагаться между открывающей ( < ) и закрывающей ( >) фигурными скобками. Мы не станем пока что останавливаться на особенностях реализации класса. Отметим только, что в среде Java все действия программы выполняются в пределах класса. В этом и состоит одна из причин, по которым все программы на java являются (по крайней мере, частично) объектно-ориентированными.
Следующая строка кода данной программы содержит однострочный комментарий:
Это второй вид комментариев, поддерживаемых в Java. Он называется однострочным комментарием и начинается с символов // , а завершается символом конца строки. Как правило, программисты пользуются многострочными комментариями для вставки длинных примечаний, а однострочными — для коротких, построчных описаний. Третий вид комментариев, называемый документирующим, будет рассмотрен далее в разделе “Комментарии”.
Перейдем к следующей строке кода анализируемой здесь программы. Ниже показано, как она выглядит:
Эта строка кода начинается с объявления метода main() . Как следует из предшествующего ей комментария, выполнение программы начинается именно с этой строки кода. Выполнение всех прикладных программ на java начинается с вызова метода main() . Мы не станем пока что разъяснять подробно назначение каждого элемента этой строки, потому что для этого требуется ясное представление о подходе к инкапсуляции, принятом в java. Но поскольку эта строка кода присутствует в большинстве примеров в моем блоге, то проанализируем ее вкратце.
Ключевое слово public является модификатором доступа, который дает программисту возможность управлять видимостью членов класса. Когда члену класса предшествует ключевое слово public , этот член доступен из кода за пределами класса, где он определен. (Совершенно противоположное обозначает ключевое слово private — оно не разрешает доступ к члену класса из кода за пределами данного класса.) В данном случае метод main() должен быть определен как public , поскольку при запуске программы он должен вызываться из кода за пределами его класса. Ключевое слово static позволяет вызывать метод main() без получения экземпляра класса. Это необходимо потому, что метод main() вызывается виртуальной машиной JVM перед созданием любых объектов. А ключевое слово void просто сообщает компилятору, что метод main() не возвращает никаких значений. Как будет показано далее, методы могут также возвращать конкретные значения. Если это краткое пояснение покажется вам не совсем понятным, не отчаивайтесь, поскольку упомянутые здесь понятия и языковые средства Java будут подробно рассматриваться в последующих моих статьях.
Как указывалось выше, метод main() вызывается при запуске прикладных программ на java. Следует, однако, иметь в виду, что в Java учитывается регистр символов. Следовательно, имя Main не равнозначно имени main . Следует также иметь в виду, что компилятор Java скомпилирует классы, в которых отсутствует метод
Для передачи любой информации, требующейся методу, служат переменные, указываемые в скобках вслед за именем метода. Эти переменные называются параметрами. Если параметры не требуются методу, то указываются пустые скобки. У метода main() имеется единственный, хотя и довольно сложный параметр. Так, в выражении String args [ ] объявляется параметр args , обозначающий массив экземпляров класса String . (Массивы — это коллекции похожих объектов.) Вобъектахтипа String хранятся символьные строки. В данном случае параметр args принимает любые аргументы командной строки, присутствующие во время выполнения программы. В данной программе эта информация, вводимая из командной строки, не используется, но в других, рассматриваемых далее примерах программ она будет применяться.
Еще один важный момент: метод main() служит всего лишь началом программы. Сложная программа может включать в себя десятки классов, но только один из них должен содержать метод main() , чтобы программу можно было запустить на выполнение. Но в некоторых случаях метод main() вообще не требуется, например, при создании аплетов — прикладных программ на java, внедряемых в веббраузеры. Метод main() в аплетах не требуется потому, что для их запуска на выполнение применяются другие средства.
Перейдем к следующей строке кода анализируемой здесь программы. Ниже показано, как она выглядит. Следует также иметь в виду, что эта строка кода находится в теле метода main() .
В этой строке кода на экран выводится текстовая строка "Простая программа на Java." с последующим переходом на новую строку. На самом деле вывод текста на экран выполняется встроенным методом println() . В данном случае метод println() отображает переданную ему текстовую строку. Как будет показано далее, с помощью этого метода можно выводить и другие типы данных. Анализируемая здесь строка кода начинается с обозначения стандартного потока вывода System . out. Это слишком сложная языковая конструкция, чтобы ее можно было просто объяснить на данной стадии изучения Java, но вкратце System обозначает предопределенный класс, предоставляющий доступ к системе, а out — поток вывода, связанный с консолью.
Нетрудно догадаться, что в реальных программах на Java консольный вывод- ввод применяется редко. Многие современные вычислительные среды по своему характеру являются оконными и графическими, поэтому консольный ввод-вывод зачастую применяется в простых служебных и демонстрационных программах. В дальнейшем будут рассмотрены другие способы ввода-вывода данных в java, а до тех пор будут применяться методы консольного ввода-вывода.
Обратите внимание на то,что оператор, в котором вызывается метод println() , завершается точкой с запятой. В языке Java все операторы обычно должны оканчиваться этим символом. Причина отсутствия точки с запятой в конце остальных строк кода программы состоит в том, что формально они не являются операторами. Первый символ > завершает метод main() , а последний символ > — определение класса Example .
В следующей статье мы расширим свои представления о Java, создав еще одну программу. Уточним понятие переменной и типа данных Java.
Читайте также: