Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
35
Добавлен:
27.03.2015
Размер:
120.32 Кб
Скачать

 

 

 

Операторы (1)

 

Название

 

 

Синтаксис

Примечание

 

Пустой

;

Этот символ

 

 

 

 

превращает

 

 

 

 

выражения

 

 

 

 

присваиваний,

 

 

 

 

инкрементов и

 

 

 

 

вызовов методов

 

 

 

 

в операторы

Условный

if ( ЛВ ) ОператорИлиБлок

ЛВ – выражение,

 

 

 

[ else ОператорИлиБлок ]

возвращающее

 

 

 

 

логическое значение

Переключатель

switch ( ЦВ ) {

1. Не может быть

 

 

 

case KВ: [ [ ПоследовательностьОператоров]

двух или более case

 

 

 

[ break; ] ]

с одинаковым

 

 

 

[ … ]

значением КВ.

 

 

 

[ default: [ ПоследовательностьОператоров]

2. Не может быть

 

 

 

[ break; ] ]

более одного

 

 

 

}

default.

Операторы (2)

Цикл ( while ) while ( ЛВ ) ОператорИлиБлок

 

Цикл ( do )

do ОператорИлиБлок while ( ЛВ ) ;

 

Цикл ( for )

for ( [ Инициализация ] ; [ Проверка ] ;

 

 

[ Модификация ] ) ОператорИлиБлок

 

Цикл (for-

for ( Тип Переменная :

Тип

each)

ОбъектРеализующийИнтерфейсIterable)

переменной

 

ОператорИлиБлок

должен быть

 

 

одинаков с

 

 

типом,

возвращаемы

м

реализацией

интерфейса

Iterable

Операторы (3)

Прекращение

break [ Метка ] ;

Если Метка отсутствует,

 

 

производится выход из ближайшего

 

 

охватывающего оператора. Если

 

 

Метка указана, производится выход

 

 

из оператора (не обязательно

 

 

цикла), помеченного ею.

Продолжение

continue [ Метка ] ;

Если Метка отсутствует,

 

 

производится переход к следующей

 

 

итерации ближайшего

 

 

охватывающего оператора цикла.

 

 

Если Метка указана, производится

 

 

переход к следующей итерации

 

 

цикла, помеченного ею.

Возврат

return [ Выражение ] ;

 

Операторы (4)

Возбуждение

throw ОбъектноеВыражение ;

ОбъектноеВы

исключения

 

ражение

 

 

должно

 

 

возвращать

 

 

объект

 

 

исключения.

Перехват

try {

Должен

исключения

ПоследовательностьОператоров

присутствовать

 

}

хотя бы один

 

[ catch ( ОбъявлениеОбъектаИсключения ) {

блок catch или

 

ПоследовательностьОператоров

блок finally

 

} ]

 

 

[ … ]

 

 

[ finally {

 

 

ПоследовательностьОператоров

 

 

}]

 

Операторы (5)

Синхрони-

synchronized ( ОбъектИлиМассив ) {

ПоследовательностьОпера

зации

ПоследовательностьОператоров

торов выполняется только

 

}

тогда, когда обеспечена

 

 

полная блокировка

 

 

указанного

 

 

ОбъектИлиМассив от

 

 

доступа других потоков.

Проверки

assert Утверждение [ : КодВозврата ]

Утверждение должно

утверждений

 

возвращать булево

 

 

значение. Если оно равно

 

 

false, то возбуждается

 

 

исключение AssertionError,

 

 

содержащее КодВозврата.

 

 

Это исключение обычно не

 

 

перехватывают.

Структура java-файла

[ package packageName; ]

 

[ import packageOrClassNameToImport;

 

… ]

 

[ accessSpecifier ] class ClassName[ typeParameters ]

// класс

[ extendsOrImplements ] {

 

[ accessSpecifier ] dataType variableName [ = initialValue ] [ , …];

// поле

...

 

[ accessSpecifier ] [ typeParameters ] ClassName ( [ argumentsList ] )

[ throwsList ]{

// конструктор

operatorsList

 

}

 

 

[ accessSpecifier ] [ typeParameters ] retValueDataType

 

methodName ( [ argumentsList ] ) [ throwsList ] {

//метод

operatorsList

 

}

 

}

[…]

//еще классы и/или интерфейсы

Элементы объявления класса Пакеты (1)

package packageName;

Это предложение, если оно присутствует в программе, должно быть первым в тексте.

Пакет – именованная совокупность классов, интерфейсов и, возможно, подпакетов. Полное имя класса (интерфейса), его метода или поля включает имя пакета:

java.lang.String или java.lang.String.length()

Пакеты определяют пространства имен со специальным

доступом для входящих в них классов. Если метод или поле не помечены ни одним модификатором доступа (public, protected, private), то он(о) доступен(но) из любого метода любого класса

данного пакета.

Если в тексте отсутствует предложение package, то компилятор по умолчанию всегда создает один и тот же неименованный (unnamed) пакет.

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

Элементы объявления класса Пакеты (2)

В пакетах могут быть определены подпакеты, имена которых должны быть различны, однако на имена внутри них никаких ограничений не накладывается. Главное, чтобы уникальными были полные или составные имена.

Рекомендуется разделять имена подпакетов точками и указывать их в порядке, обратном порядку следования имен в имени интернет-домена автора, например:

ru.nstu.cs.vt.wtl.syntax или com.knownhost.direct

Это гарантирует уникальность имен классов, их полей и методов каждого автора, которая не может быть достигнута в случае unnamed.

Система пакетов платформы Java имеет деревообразную структуру, которая хорошо накладывается на структуру каталогов файловой системы.

Для сокращения длины имен часто употребляемых пакетов собственником платформы Java фирмой Sun (теперь Oracle) введены и поддерживаются:

java, javax и sun.

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

Если известно полное имя класса, экземпляр которого нужно использовать в программе, то создавать экземпляр можно так:

tta = new ru.nstu.cs.vt.wtl.templateToAutomates();

Тот же результат можно получить, указав необходимость импорта класса templateToAutomates из пакета:

import ru.nstu.cs.vt.wtl.templateToAutomates;

tta = new templateToAutomates();

Полное имя класса можно указывать и тогда, когда присутствует директива его импорта или импорта содержащего его пакета.

Если в программе требуется использовать несколько классов (или все классы) из некоторого пакета, то можно указать:

import ru.nstu.cs.vt.wtl.*;

Директив import может быть сколько угодно много, но все они должны находиться в начале файла сразу после package.

Элементы объявления класса Заголовок класса (1)

[ accessSpecifier ] class ClassName[ typeParameters ] [ extendsOrImplements ]

accessSpecifier – одно или несколько ключевых слов: public – общедоступный класс (при отсутствии этого спецификатора поля и методы класса доступны только из методов классов пакета, содержащего данный класс, например - unnamed);

abstract – абстрактный класс, его экземпляры не могут быть созданы (этот класс может использоваться только в качестве базового при наследовании);

final – у этого класса не может быть наследников (естественно, не имеет смысла объявление abstract final class);

strictfp – все методы этого класса используют операции с плавающей точкой стандартизованной по IEEE 754 точности (введено для обеспечения совместимости с JDK v1.0, при этом сильно замедляется интерпретация программы, по возможности этот спецификатор лучше не использовать).

Элементы объявления класса Заголовок класса (2)

[ accessSpecifier ] class ClassName[ typeParameters ] [ extendsOrImplements ]

typeParameters – список имен типов, заключенных в угловые скобки, информация о которых должна использоваться при компиляции и при создании экземпляров класса (механизм «generics», напоминающий шаблонные классы в С++).

Пример определения параметризованного класса: public class Box<T> {

}

Пример создания экземпляра параметризованного класса:

Box<Integer> boxForIntegers = new Box<Integer>; Box<String> boxForStrings = new Box<String>;

Соседние файлы в папке Презентации по Java