Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТЕКСТЫ для лабработы 2 / вариант №34.rtf
Скачиваний:
56
Добавлен:
14.03.2016
Размер:
739.11 Кб
Скачать

Базовый синтаксис языка

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

В Java существуют классы. Класс – это определение шаблона объектов. Определение класса в Java имеет следующий вид:

[public|private] class <имя класса> [extends <имя род. класса>] [implements <список интерфейсов>]{ [<определение полей и методов класса>] }

Ключевые слова языка выделены жирным шрифтом, а необязательные конструкции заключены в квадратные скобки. При определении класса следует указать видимость данного класса в пределах программы (пакета): private (защищенный) или public (видимый во всех внешних классах, действует по умолчанию), далее, после ключевого слова class следует имя класса и несколько необязательных конструкций. Первая из них, начинающаяся ключевым словом extends задает имя родительского класса, свойство которого наследует данный класс (наследование в объектно-ориентированных языках), по умолчанию считается, что класс наследуется от Object – базового класса Java. Далее может следовать определение интерфейсов, реализуемых классом (некоторое подобие множественного наследования в C++). После ключевого слова implements перечисляются, через запятую, имена интерфейсов. После заголовка класса следует определение полей и методов, заключенное в фигурные скобки { и }. Разделителями служат пробелы.

Определение полей класса эквивалентно заданию переменных для блока кода в C/C++. В объявлении класс переменные обычно располагают сразу после заголовка класса. Для задания полей класса служит следующая конструкция:

[public|private|protected] [static] [final] <тип> <имя поля> [= <значение>];

Ключевые слова, задающие видимость поля, определяют, будет ли поле видимым вне класса (public), невидимым (private) и видимыми только в классах, наследниках данного (protected). За ними могут идти ряд спецификаторов. Далее следует тип поля. Это может быть как простой (например int ), так и классовый тип (то есть, поля класса сами могут быть классами). Следом указывается имя поля и затем может задаваться ее значение.

Необязательные спецификаторы static и final позволяют определить тип поля: общее для всех экземпляров класса и неизменяемое (константа).

В Java не существует исполнимого кода вне методов класса, то есть невозможно задать некоторую процедуру или функцию вне определения класса. Методы определяются при задании класса. Обычно определение методов следует после полей класса и имеет вид:

[public|private|protected] [static] [final] <тип> <имя метода> ( [<список форм. параметров>] ){ [<реализация метода>] }

Все методы в Java – функции. Если значение, возвращаемое методом, не определено, то указывается тип void. Список формальных параметров состоит из одного или нескольких объявлений вида <тип> <имя параметра>, разделенных запятой. Действие спецификаторов видимости и спецификатора static аналогично ранее описанному для полей. Спецификатор final определяет метод, который невозможно перекрыть в наследниках (по умолчанию все методы в Java - виртуальные). Реализация метода представляет собой блок кода, который может включать объявление локальных переменных и последовательность операторов Java. Определение метода в Java не отделимо от его реализации.

В Java для каждого класса существует специальный метод, именуемый конструктором. Определение этого метода следующее:

[public|private|protected] <имя класса> ( [<список форм.параметров>] ) { [<реализация метода>] }

Для конструктора не задается тип возвращаемого значение (ни чего не возвращает) и его имя совпадает с именем класса. Именно этот метод выполняется при создании экземпляра класса.

Любой метод класса Java может быть "перегружен". Для этого он определяется несколько раз, с указанием одного и того же имени, но разным количеством формальных параметров. Решение о том, какой из вариантов метода использовать, принимается на основе списка фактических параметров, указываемых при вызове.

Вызов метода класса или доступ к переменной класса внутри метода того же класса осуществляется просто указанием имени. Для доступа к переменным и методам иного класса применяется оператор "точка" (dot):

<экземпляр класса\имя класса>.<имя перемнной\метода>

Основная работа осуществляется внутри методов. Именно здесь описываются последовательности операторов Java. Оператор может быть простым или составным:

<оператор языка>; // простой оператор{ <оператор 1>; .... <оператор N>; } // составной оператор

Комментарий в программе допустимо указывать любым разрешенным в C++ способом, например с помощью "двойного слэша" (комментарий до конца строки).

Множество операторов и операций досталось Java в наследство от C++. Более подробно они рассматриваются ниже. Обсудим здесь только один оператор new, формат использования которого следующий:

<переменная класса> = new <Имя класса> ([<параметры используемого конструктора>] );

Таким образом создаются все экземпляры классов. Ссылка на объект (экземпляр класса), созданный с помощью оператора new сохраняется в переменной классового типа. Далее, все ссылки на поля и методы созданного экземпляра класса выполняются через указанную классовую переменную.

Объявления локальных переменных в методе осуществляется так же, как и полей класса:

<тип> <имя переменной> [= <значение>];

При определении локальной переменной отсутствуют дополнительные спецификаторы.

Следует помнить, что компилятор Java различает строчные и прописные буквы. Все ключевые слова Java записываются строчными буквами.

Соседние файлы в папке ТЕКСТЫ для лабработы 2