Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Тема 1.8 Лексические основы языка



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

1). Пробелы

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

2). Комментарии

Хотя комментарии никак не влияют на исполняемый код программы, при правильном использовании они оказываются весьма существенной частью исходного текста. Существует три разновидности комментариев: комментарии в одной строке, комментарии в нескольких строках и, наконец, комментарии для документирования. Комментарии, занимающие одну строку, начинаются с символов // и заканчиваются в конце строки. Такой стиль комментирования полезен для размещения кратких пояснений к отдельным строкам кода:

а = 42; // если 42 - ответ, то каков же был вопрос?

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

/*

* Этот код несколько замысловат...

* Попробую объяснить:

* ….

*/

Третья, особая форма комментариев, предназначена для сервисной программы javadoc, которая использует компоненты Java-транслятора для автоматической генерации документации по интерфейсам классов. Соглашение, используемое для комментариев этого вида, таково: для того, чтобы разместить перед объявлением открытого (public) класса, метода или переменной документирующий комментарий, нужно начать его с символов /** (косая черта и две звездочки). Заканчивается такой комментарий точно так же, как и обычный комментарий – символами */. Программа javadoc умеет различать в документирующих комментариях некоторые специальные переменные, имена которых начинаются с символа @. Вот пример такого комментария:

 

/**

* Этот класс умеет делать замечательные вещи. Советуем всякому, кто

* захочет написать еще более совершенный класс, взять его в качестве

* базового.

* @see Java. applet. Applet

* ©author Patrick Naughton

* @version 1. 2

*/

classCoolAppletextendsApplet { /**

* У этого метода два параметра:

* @param key - это имя параметра.

* @param value - это значение параметра с именем key.

*/ void put (String key, Object value) {

 

3). Зарезервированные ключевые слова

Зарезервированные ключевые слова – это специальные идентификаторы, которые в языке Java используются для того, чтобы идентифицировать встроенные типы, модификаторы и средства управления выполнением программы. На сегодняшний день в языке Java имеется 59 зарезервированных слов (см. таблицу 1). Эти ключевые слова совместно с синтаксисом операторов и разделителей входят в описание языка Java. Они могут применяться только по назначению, их нельзя использовать в качестве идентификаторов для имен переменных, классов или методов.

 

 

Таблица 1.1– Зарезервированныеслова Java

abstract boolean break byte byvalue
case cast catch char class
const continue default do double
else extends false final finally
float for future generic goto
if implements import inner instanceof
int interface long native new
null operator outer package private
protected public rest return short
static super switch syncronized this
throw throws transient true try
var void volatile while  

Отметим, что слова byvalue, cast, const, future, generic, goto, inner, operator, outer, rest, var зарезервированы в Java, но пока не используются. Кроме этого, в Java есть зарезервированные имена методов (эти методы наследуются каждым классом, их нельзя использовать, за исключением случаев явного переопределения методов класса Object).

Таблица 1.2 – Зарезервированные имена методов Java

clone equals finalize getClass hashCode
notify notifyAll toString wait  

 

4). Идентификаторы

Идентификаторы используются для именования классов, методов и переменных. В качестве идентификатора может использоваться любая последовательность строчных и прописных букв, цифр и символов _ (подчеркивание) и $ (доллар). Идентификаторы не должны начинаться с цифры, чтобы транслятор не перепутал их с числовыми литеральными константами, которые будут описаны ниже. Java – язык, чувствительный к регистру букв. Это означает, что, к примеру, Value и VALUE – различные идентификаторы.

5). Литералы

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

 

Рис 1.31

 

5.1). Целые литералы

Целые числа – это тип, используемый в обычных программах наиболее часто. Любое целочисленное значение, например, 1, 2, 3, 42 – это целый литерал. В данном примере приведены десятичные числа, то есть числа с основанием 10 – именно те, которые мы повседневно используем вне мира компьютеров. Кроме десятичных, в качестве целых литералов могут использоваться также числа с основанием 8 и 16 – восьмеричные и шестнадцатеричные. Java распознает восьмеричные числа по стоящему впереди нулю. Нормальные десятичные числа не могут начинаться с нуля, так что использование в программе внешне допустимого числа 09 приведет к сообщению об ошибке при трансляции, поскольку 9 не входит в диапазон 0.. 7, допустимый для знаков восьмеричного числа. Шестнадцатеричная константа различается по стоящим впереди символам нуль-х (0х или 0Х). Диапазон значений шестнадцатеричной цифры – 0.. 15, причем в качестве цифр для значений 10.. 15 используются буквы от А до F (или от а до f). С помощью шестнадцатеричных чисел вы можете в краткой и ясной форме представить значения, ориентированные на использование в компьютере, например, написав Oxffff вместо 65535.

Целые литералы являются значениями типа int, которое в Java хранится в 32-битовом слове. Если вам требуется значение, которое по модулю больше, чем приблизительно 2 миллиарда, необходимо воспользоваться константой типа long. При этом число будет храниться в 64-битовом слове. К числам с любым из названных выше оснований вы можете приписать справа строчную или прописную букву L, указав таким образом, что данное число относится к типу long. Например, Ox7ffffffffffffffL или 9223372036854775807L – это значение, наибольшее для числа типа long.

5.2). Литералы с плавающей точкой

Числа с плавающей точкой представляют десятичные значения, у которых есть дробная часть. Их можно записывать либо в обычном, либо экспоненциальном форматах. В обычном формате число состоит из некоторого количества десятичных цифр, стоящей после них десятичной точки, и следующих за ней десятичных цифр дробной части. Например, 2.0, 3.14159 и.6667 – это допустимые значения чисел с плавающей точкой, записанных в стандартном формате. В экспоненциальном формате после перечисленных элементов дополнительно указывается десятичный порядок. Порядок определяется положительным или отрицательным десятичным числом, следующим за символом Е или е. Примеры чисел в экспоненциальном формате: 6.022е23, 314159Е-05, 2е+100. В Java числа с плавающей точкой по умолчанию рассматриваются, как значения типа double. Если вам требуется константа типа float, справа к литералу надо приписать символ F или f. Если вы любитель избыточных определений – можете добавлять к литералам типа double символ D или d. Значения используемого по умолчанию типа double хранятся в 64-битовом слове, менее точные значения типа float – в 32-битовых.

5.3). Логические литералы

У логической переменной может быть лишь два значения – true (истина) и false (ложь). Логические значения true и false не преобразуются ни в какое числовое представление. Ключевое слово true в Java не равно 1, a false не равно 0. В Java эти значения могут присваиваться только переменным типа boolean либо использоваться в выражениях с логическими операторами.

5.4). Символьные литералы

Символы в Java – это индексы в таблице символов UNICODE. Они представляют собой 16-битовые значения, которые можно преобразовать в целые числа и к которым можно применять операторы целочисленной арифметики, например, операторы сложения и вычитания. Символьные литералы помещаются внутри пары апострофов (' '). Все видимые символы таблицы ASCII можно прямо вставлять внутрь пары апострофов: - 'a', 'z', '@'. Для символов, которые невозможно ввести непосредственно, предусмотрено несколько управляющих последовательностей.

 

 

Таблица 1.3 – Управляющие последовательности символов

Управляющая последовательность Описание
\ddd Восьмеричный символ (ddd)
\uxxxx Шестнадцатиричный символ UNICODE (xxxx)
\' Апостроф
\" Кавычка
\\ Обратная косая черта
\r Возврат каретки (carriage return)
\n Переводстроки (line feed, new line)
\f Перевод страницы (form feed)
\t Горизонтальная табуляция (tab)
\b Возврат на шаг (backspace)

 

5.5). Строчные литералы

Строчные литералы в Java выглядят точно также, как и во многих других языках – это произвольный текст, заключенный в пару двойных кавычек (" " ). Хотя строчные литералы в Java реализованы весьма своеобразно (Java создает объект для каждой строки), внешне это никак не проявляется. Примеры строчных литералов: “Hello World! ”; " две\строки; \ А это в кавычках\" ". Все управляющие последовательности и восьмеричные / шестнадцатиричные формы записи, которые определены для символьных литералов, работают точно так же и в строках. Строчные литералы в Java должны начинаться и заканчиваться в одной и той же строке исходного кода. В этом языке, в отличие от многих других, нет управляющей последовательности для продолжения строкового литерала на новой строке.

6). Операторы

Оператор – это нечто, выполняющее некоторое действие над одним или двумя аргументами и выдающее результат. Синтаксически операторы чаще всего размещаются между идентификаторами и литералами. Детально операторы будут рассмотрены далее, их перечень приведен в таблице 4.

Таблица 1.4 – Операторы языка Java

+ += - -=
* *= / /=
| |= ^ ^=
& & = % %=
> > = < < =
! ! = ++ --
> > > > = < < < < =
> > > > > > = & & | |
== = ~ ?:
  instanceof [ ]  

7). Разделители

Лишь несколько групп символов, которые могут появляться в синтаксически правильной Java-программе, все еще остались неназваннами. Это – простые разделители, которые влияют на внешний вид и функциональность программного кода.

Таблица 1.5 – Разделители языка Java

Символы Название Для чего применяются
( ) круглые скобки Выделяют списки параметров в объявлении и вызове метода, также используются для задания приоритета операций в выражениях, выделения выражений в операторах управления выполнением программы, и в операторах приведения типов.
{ } фигурные скобки Содержат значения автоматически инициализируемых массивов, также используются для ограничения блока кода в классах, методах и локальных областях видимости.
[ ] квадратные скобки Используются в объявлениях массивов и при доступе к отдельным элементам массива.
; точка с запятой Разделяет операторы.
, запятая Разделяет идентификаторы в объявлениях переменных, также используется для связи операторов в заголовке цикла for.
. точка Отделяет имена пакетов от имен подпакетов и классов, также используется для отделения имени переменной или метода от имени переменной.

8). Переменные

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

Рисунок 1.32

 

Основная форма объявления переменной такова:

тип идентификатор [ = значение] [, идентификатор [ = значение]...];

Тип – это либо один из встроенных типов, то есть, byte, short, int, long, char, float, double, boolean, либо имя класса или интерфейса. Мы подробно обсудим все эти типы далее. Ниже приведено несколько примеров объявления переменных различных типов. Обратите внимание на то, что некоторые примеры включают в себя инициализацию начального значения. Переменные, для которых начальные значения не указаны, автоматически инициализируются нулем.

 

Таблица 1.6 – Пример объявления переменных разных типов

int a, b, с; Объявляет три целых переменных а, b, с.
int d = 3, e, f = 5; Объявляет еще три целых переменных, инициализирует d и f.
byte z = 22; Инициализирует z.
double pi = 3. 14159; Объявляет число пи (не очень точное, но все таки пи).
char x = 'x'; Переменная х получает значение 'х'.

 

В данном простом примере(листинг 1.3) объявлены две переменные. Первой переменной присваивается значение 2012, второй – 2012/2. Значения обоих переменных выводятся на консоль.

Листинг 1.3

public class Variables {

public static void main(String args[]) {

int a;

int b;

a = 2012;

System.out.println(" a = " + a);

b = a / 2;

System.out.print(" b = a/2 = " + b);

}

}

Задачи

1. Создать класс Hello, который будет приветствовать кого угодно, в зависимости от пожелания пользователя.

2. Написать приложение, которое отображает в окне консоли аргументы командной строки метода main() в обратном порядке.

3. Написать приложение, которое отображает в окне консоли только последний аргумент командной строки метода main().

4. Написать приложение, которое будет вычислять и выводить значение по формуле:

a=4*(b+c-1)/2;

b и c задаем константами в коде самостоятельно.


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-05-30; Просмотров: 632; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.029 с.)
Главная | Случайная страница | Обратная связь