Материал: LW №7. Java. Foundations

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

ЛАБОРАТОРНАЯ РАБОТА №7 ПО ПРЕДМЕТУ «ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ». ЧАСТЬ 2.

«КРАТКИЙ ОБЗОР ЯЗЫКА JAVA. ВВЕДЕНИЕ В ООП В

JAVA»

Цель работы: изучить ряд основных языковых средств языка Java.

Объектно-ориентированное программирование (ООП) составляет основу языка Java. Каждая программа нa Java является объектноориентированной. В каждой программе нa Java применяются принципы инкапсуляции, наследования и полиморфизма.

Рассмотрим несколько практических примеров программ, написанных на языке Java. Начнем с компиляции и запуска короткого примера программы.

/*Пример №1. Это простая программа на Java. Необходимо присвоить исходному файлу имя "Example.java"*/

class Example{

//Эта программа начинается с вызова метода main() public static void main(String args[] ){

System.out.println("Simple Java example.");

}}

Здесь и далее используется стандартный комплект разработчика Java SE 16 Developer's Kit(Java SE 16), который вышел в марте 2021,

предоставляемый компанией Oracle.

НАПИСАНИЕ КОДА ПРОГРАММЫ

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

исходный файл официально является единицей компиляции. Исходный файл также представляет собой текстовый файл, содержащий определения

1

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

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

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

КОМПИЛЯЦИЯ ПРОГРАММЫ

Чтобы скомпилировать программу Example, запустите компилятор (javac), указав имя исходного файла в командной строке следующим образом:

Компилятор javac создаст файл Example.class, содержащий версию байт-кода.

Байт-код Java является промежуточным представлением программы, содержащим инструкции, которые будет выполнять виртуальная машина JVМ. Следовательно, компилятор javac выдает результат, который не является непосредственно исполняемым кодом.

Чтобы выполнить программу, следует воспользоваться загрузчиком приложений jаvа. Ему нужно передать имя класса Example в качестве аргумента командной строки, как показано ниже.

Выполнение данной программы приведет к выводу на экран строки

«Simple Java example.».

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

2

расширением .class. И если он найдет такой файл, то выполнит код, содержащийся в указанном классе.

АНАЛИЗ КОДА ПРОГРАММЫ

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

/*Пример №1. Это простая программа на Java. Необходимо присвоить исходному файлу имя "Example.java"*/

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

В Java поддерживаются три вида комментариев: однострочные, многострочные, документационные. Комментарий, приведенный в программе, называется многострочным. Этот вид комментариев должен начинаться с символов /* и оканчиваться символами */.

Следующая строка программы выглядит следующим образом:

class Example {

В этой строке кода ключевое слово class служит для объявления вновь определяемого класса, а слово Example – в качестве идентификатора, обозначающего имя класса. Все определение класса, в том числе его элементов, должно располагаться между открывающей({) и закрывающей(})

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

Следующая строка кода данной программы содержит однострочный комментарий:

//Эта программа начинается с вызова метода main()

Это второй вид комментариев называется однострочным комментарием и начинается с символов //, а завершается символом конца строки. Как правило, программисты пользуются многострочными

3

комментариями для вставки длинных примечаний, а однострочными – для коротких, построчных описаний.

Специальным образом оформленные комментарии (так называемые документирующие комментарии) используются для автоматического создания документации к библиотекам функций или классов. Для этого используются генератор документации javadoc. Документирующий комментарий должен находиться перед документируемым элементом. Первым символом в комментарии (и в начале каждой строки комментария) должен быть *. Блоки разделяются пустыми строками. Документирующий комментарий начинается с символов /** и оканчивается символами */. Пример документирующего комментария приведен ниже.

/**

*Имя или краткое описание объекта

*Развернутое описание

*

*@имя_дескриптора значение

*@return тип_данных

*/

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

Строка кода:

public static void main(String args []) {

Эта строка кода содержит объявление метода main(). Выполнение всех прикладных программ на Java начинается с вызова метода main(). Ключевое слово public является модификатором доступа, который дает программисту возможность управлять видимостью элементов класса. Когда элементу класса предшествует ключевое слово public, то этот элемент доступен из кода за пределами класса. Совершенно противоположное обозначает ключевое слово private – оно не разрешает доступ к элементу класса из кода за пределами класса.

В данном случае метод main() должен быть определен как public, поскольку при запуске программы он должен вызываться из кода за пределами его класса. Ключевое слово static позволяет вызывать метод main() без получения экземпляра класса. Это необходимо потому, что метод main() вызывается виртуальной машиной JVМ перед созданием любых объектов. А ключевое слово void сообщает, что метод main() не возвращает никаких значений.

4

Имя Main не равнозначно имени main. Компилятор Java скомпилирует классы, в которых отсутствует метод main(), но загрузчик приложений не сможет выполнить код таких классов. Так, если вместо имени main ввести имя Main, то компилятор скомпилирует программу, но загрузчик приложений Java выдаст сообщение об ошибке, поскольку ему не удалось обнаружить метод main().

Для передачи любой информации, требующейся методу, служат переменные, указываемые в скобках вслед за именем метода. Эти переменные называются параметрами. Если параметры не требуются методу, то указываются пустые скобки. У метода main() имеется единственный параметр. Так, в выражении String args[] объявляется параметр args, обозначающий массив экземпляров класса String. В объектах типа String хранятся символьные строки. В данном случае параметр args принимает любые аргументы командной строки, присутствующие во время выполнения программы. В данной программе эта информация, вводимая из командной строки, не используется.

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

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

В строке кода:

System.out.println("Simple Java example.");

на экран выводится текстовая строка "Simple Java example." с последующим переходом на новую строку. На самом деле вывод текста на экран выполняется встроенным методом println(). В данном случае метод println() отображает переданную ему текстовую строку. С помощью этого метода можно выводить и другие типы данных. Анализируемая здесь строка кода начинается с обозначения стандартного потока вывода System.out. System обозначает имя класса класс, предоставляющий доступ к системе, а out – поток вывода, связанный с консолью.

Обратите внимание на то, что оператор, в котором вызывается метод println(), завершается точкой с запятой. В языке Java все операторы должны оканчиваться этим символом. Причина отсутствия точки с запятой в конце остальных строк кода программы состоит в том, что формально они не являются операторами. Первый символ } завершает метод main(), а последний символ } – определение класса Example.

5