к оглавлению   к 4GL - визуальному программированию

Ключевые слова

abstract

Ключевое слово abstract используется в объявлениях классов и методов. В объявлении класса оно обычно означает, что один или несколько методов класса являются абстрактными. Если в объявлении класса это ключевое слово опущено, но присутствует в объявлении метода, то класс неявно определяется как абстрактный. (Для улучшения читаемости программы рекомендуется все же использовать это ключевое слово в объявлении абстрактного класса.)

Создавать экземпляры классов, объявленных абстрактными, нельзя. Такие классы требуют от программиста реализации каждого абстрактного метода в новом производном классе. Следующий пример иллюстрирует простой абстрактный класс и производный от него:

public abstract class FruitClass {

public boolean isPeelable( );

}

public class BananaClass extends FruitClass private boolean bPeel;

public boolean isPeelable( ) {

return bPeel; } }

Производный класс (BananaClass) позволяет создавать свои экземпляры; при этом наследуются любые неабстрактные методы абстрактного класса (FruitClass), если только они не переопределены. Заметьте, что в объявлении класса нельзя смешивать ключевые слова abstract и final.

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

abstract public int someMethod(int argl, int arg2);

Метод, объявленный с клюневым словом abstract, нельзя объявлять с ключевыми словами static, private или final.

boolean

Ключевое слово boolean объявляет простой тип данных Java, допускающий два Булевых значения: true и false. Хотя true и false определяются в Java как ключевые слова, на самом деле это литеральные константы. Поэтому ключевые слова true и false можно использовать как возвращаемые значения и при проверке условий, а также в операциях присвоения и сравнения с другими Булевыми переменными. Содержимое Булевых переменных нельзя приводить к другим типам данных (равно как и другие типы — к Булевым переменным), однако текущее значение Булевой переменной можно преобразовать в строку. Пример объявления Булевой переменной и присвоения ей значения:

private boolean isRunning; isRunning = true;

break

Ключевое слово break досрочно завершает выполнение цикла while, do, for или конструкции switch. Если в операторе break указана метка, управление передается на строку под этой меткой. (Оператор в данной строке может не относиться к while, do, for или switch.) Кроме того, оператор break передает управление за пределы блоков try/ catch. Если оператор break с меткой выполняется в блоке try или catch, с которым связан парный блок finally, то сначала обрабатываются операторы блока finally. И только после выполнения всего блока finally управление передается первому оператору за меткой. Применение оператора break с меткой иллюстрирует такой пример:

blockl:

recordsRemain = getUpdateStatus( );

while (recordsRemain)

{

if (isRunning)

System.out.println("Update another record"); else

break block1; }

byte

Ключевое слово byte объявляет простой тип данных Java, допускающий целочисленные значения от -128 до +127. В байте содержится 8 бит независимо ет платформы, на которой исполняется байтовый код Java. Переменные типа byte нельзя приводить к другим числовым типам данных (равно как и другие числовые типы — к byte). Пример объявления байтовой переменной и присвоения ей значения:

private byte stripThis; stripThis = 64;

case

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

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

catch

Ключевое слово catch включает в программу блок обработки исключений. За этим ключевым словом указывается тип исключения, имя аргумента в круглых скобках и блок кода, выполняемый при исключениях данного типа. Оператор try и его блок кода всегда предшествуют оператору catch. Если исключение возникает в блоке try, проверяется, способен ли соответствующий оператор catch обработать это исключение. Если да, оно присваивается аргументу и выполняется код блока catch.

Пример, иллюстрирующий ключевое слово catch, см. в описании try.

char

Ключевое слово char объявляет простой тип данных Java для хранения единственного 16-разрядного Unicode-символа, значение которого должно укладываться в диапазон от \u0000 до \uffff. Наборы Unicode-символов позволяют представить большинство письменных языков, существующих в мире. (ASCII-символы составляют лишь малую часть набора Unicode-символов.)

Значение переменной типа char можно приводить к другим числовым типам данных (равно как и другие числовые типы — к char). Однако данные этого типа являются неявно беззнаковыми, поэтому преобразование char в byte или short может привести к появлению отрицательного числа. Пример объявления переменной типа char и присвоения ей значения:

private char hitChar;

hitChar = 'a';

class

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

continue

Ключевое слово continue используется во вложенных циклах как одноименный оператор. Если в нем не указана метка, он передает управление в конец текущего цикла while, do или for. При этом досрочно завершается текущая итерация и начинается новая. А если в continue метка задана, управление передается последнему оператору внешнего цикла. В этом случае сама метка должна находиться непосредственно перед таким циклом while, do или for — в отличие от оператора break, который не требует, чтобы метка располагалась только перед оператором цикла.

Если оператор continue с меткой выполняется в блоке try или catch, у которого сеть парный блок finally, то предварительно выполняются операторы в finally. А затем управление передается последнему оператору того цикла, который помечен меткой.

Следующий код демонстрирует ключевое слово continue с меткой и без нее: blockl:

for (int i=0; i < 10; i++) {

while (statusOkay) {

if (someNum < 0) {

someNum++;

System.out.println("Do it again"); continue; }

if (string1[i] == null) {

System.out.println("null string here");

continue blockl; } else

{

string2[i] = string1[i];

}

// сюда указывает continue без метки

}

// а сюда - с меткой }

default

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

delegate

Ключевое слово delegate применяется как часть объявления класса делегата, который расширяет com.ms.lang.Delegate или com.ms.lang.Multi-castDelegate. Делегаты используются в Microsoft Windows Foundation Classes for Java (WFC) для поддержки механизмов обработки событий. Делегаты примерно соответствуют процедурным указателям, широко применяемым в C++ и других объектно-ориентированных языках. Но в отличие от процедурных указателей, делегаты объектно-ориентированны, безопасны и обеспечивают контроль типов. Кроме того, если процедурный указатель содержит лишь ссылку на конкретную функцию, то делегат состоит из ссылки на объект и ссылок на один или несколько методов в этом объекте.

Допускается объявление либо «обычных», либо многоканальных делегатов (multicast delegates); в последнем случае следует добавить ключевое слово multicast. Обычный делегат инкапсулирует ссылку на единственный метод в экземпляре. При обращении к делегату этого типа вызывается его присоединенный метод.

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

Примечание Ключевое слово delegate является расширением языка Java, введенным Microsoft.

do

Ключевое слово do — часть конструкции do/while. В отличие от других, более распространенных циклических конструкций, выражение в do/while оценивается лишь после первого выполнения тела цикла. Таким образом, тело цикла гарантированно выполняется минимум один раз, даже если результат оценки выражения вызывает завершение цикла.

Примечание Не забывайте ставить точку с запятой после условия

в

do/while.

Типичный пример цикла do/while: int i = getValue( );

do {

System.out.println("Printing at least once");

} while (i <= 10);

double

Ключевое слово double объявляет простой тип данных Java для хранения 64-разрядного числа с плавающей точкой в формате IEEE 754. Переменные типа double могут содержать значения в диапазоне от -1.7Е308 до +1.7Е308 с точностью около 14 значащих разрядов. Если Вы хотите, чтобы литеральное значение с плавающей точкой обрабатывалось как double, добавьте d или D к его правой части.

Переменные типа double можно приводить к другим числовым типам данных (равно как и другие числовые типы — к double). Однако такие

(преобразования невозможны в сочетании с типом boolean. Пример объявления переменной типа double и присвоения ей значения: private double dCalcSet; dCalcSet = 1.23d; dCalcSet = 3e2; dCalcSet = .25;

else

Ключевое слово else образует альтернативный раздел в блочном операторе if. Если выражение в операторе if лает false, управление передается первому оператору после else. А если выражение в if д^ет true, то — первому оператору после if.

Из-за несоблюдения отступов в if/else часто возникают логические ошибки. Вот пример:

if (numPrints < 1000)

if (paperFeed == fullTray)

{

printPaperCopy( );

showStatus( );

paperFeed-; } else

suspendPrintJob( ); // неправильный отступ!

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

extends

Ключевое слово extends в объявлении класса указывает его ближайший надкласс. Последний можно рассматривать как класс, на основе реализации которого строится реализация текущего класса. Объявляемый класс является ближайшим подклассом расширяемого им класса. Если ключевое слово extends не определяет надкласс в явном виде, таковым считается класс java.lang.Object.

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

Пример типичного использования ключевого слова extends:

public class TransactionApplet extends Applet

{

}

false

Ключевое слово false используется как одно из двух Булевых значений. Строго говоря, false не является ключевым словом языка Java; правильнее было бы назвать его литеральным значением, которое присваивается переменной типа boolean.

Пример для ключевого слова false см. в описании ключевого слова boolean.

final

Ключевое слово final является модификатором классов, методов и переменных. Его присутствие в объявлении класса означает, что данный класс не допускает ни переопределения, ни создания подклассов. Создатель такого класса как бы считает, что дальнейшие изменения войдут в противоречие с первоначальным назначением класса. Ключевое слово final в объявлении метода означает, что переопределять этот метод нельзя. (Кстати, объявление метода с ключевыми словами static или private подразумевает его неявное объявление и как final.) А присутствие final в объявлении переменной означает, что нельзя изменять присвоенное ей значение.

finally

Ключевое слово finally определяет блок кода, следующий за блоком try/ catch. Блок finally необязателен и может находиться после блока try и любого блока catch. Код в finally всегда выполняется лишь раз. Обычно управление доходит до конца блока try и передается блоку finally, который, как правило, отвечает за очистку.

Если управление передается из try оператором return, continue или break, то сначала все равно выполняется блок finally. Если исключение возникает в try, с которым связан блок catch, обрабатывающий исключения в пределах метода, управление передается сначала catch, затем finally. Если же локального блока catch нет, управление передается сначала finally, потом вызванным методам (по восходящей), пока не будет найден подходящий обработчик для этого исключения.

float

Ключевое слово float объявляет простой тип данных Java для хранения 32-разрядного числа с, плавающей точкой з формате IEEE 754. Переменные типа float могут содержать значения в диапазоне от + 3.40282347Е + 38 до -1.40239846Е-45. Если Вы хстите, чтобы литеральное значение с плавающей точкой обрабатывалось как float, добавьте / или F к его правой части. Пример объявления переменной типа float и присвоения ей значения:

float fCalcSet;

fCalcSet = 1.23f;

fCalcSet = 3e2f;

fCalcSet = .25f;

for

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

Во втором разделе содержится выражение, после вычисления которого определяется, надо ли продолжать цикл. Результат, равный true, позволяет продолжить цикл, a false — передает управление оператору, следующему за телом цикла,

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

Типичный пример цикла for: for (int i = 0; i < 10; i++)

if

Ключевое слово if позволяет выполнять оператор или блок операторов, пока проверочное выражение дает true. В блочном варианте оператора if может присутствовать альтернативный раздет else. Если выражение в if дает false, управление передается оператору(или блоку операторов) после else. А если выражение в if дает true, то — первому оператору после if.

Из-за несоблюдения отступов в if/else часто возникают логические ошибки. Вот пример:

if (numPrints < 1000)

if (paperFeed == fullTray) {

printPaperCopy( ); showStatus( ); paperFeed-; } else

suspendPrintJob( ); // неправильный отступ!

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

implements

Ключевое слово implements указывает в объявлении класса, что он реализует один или несколько интерфейсов. В последнем случае имена интерфейсов в объявлении разделяются запятыми. Кроме того, после implements в объявлении класса должно следовать ключевое слово extends. Пример использования ключевого слова implements при объявлении класса:

public class PotatoHead implements InterchangeableParts {

}

import

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

Использование ключевого слова import демонстрирует следующий пример:

import my.package.*;

// импортируются все классы из my.package import my.package.cool;

// из ту.package импортируется только класс cool

instanceof

Ключевое слово instanceof используется как оператор, который возвращает true, если объект в левой его части является экземпляром класса или реализует интерфейс, который указан в его правой части. Оператор instanceof возвращает false, если объект не является экземпляром данного класса или не реализует данный интерфейс. Это же значение возвращается и в том случае, если указанный объект — null.

int

Ключевое слово int объявляет простой тип данных Java для хранения целочисленных значений в интервале от -2147483648 до +2147483647. Размер int равен 32 битам независимо от платформы, на которой выполняется байтовый код Java.

Содержимое переменных int можно приводить к другим числовым типам данных (равно как и другие числовые типы — к int). Пример объявления переменной типа int и присвоения ей значения:

private int iValueK; iValueK = 1024;

interface

Ключевое слово interface объявляет интерфейс. Последний можно рассматривать как некий шаблон для класса, который Вам, возможно, придется реализовать, но Вы не обязаны делать все сами. Интерфейсы отличаются от классов тем, что:

long

Ключевое слово long объявляет простой тип данных Java для хранения значений в интервале от -9223372036854775808 до +9223372036854775807. Размер long равен 64 битам независимо от платформы, на которой выполняется байтовый код Java.

Содержимое переменных long можно приводить к другим числовым типам данных (равно как и другие числовые типы — к long). Пример объявления переменной типа long и присвоения ей значения: private long iLedgerBalance; iLedgerBalance = 1234567890;

multicast

Ключевое слово multicast используется в объявлении делегата для определения класса, расширяющего com.ms.lang.MulticastDelegate. Подробнее о многоканальных делегатах (multicast delegates) см. описание ключевого слова delegate.

Примечание Ключевое слово multicast является расширением языка Java, введенным Microsoft.

native

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

Такие методы нельзя объявлять с ключевым словом abstract. О простом способе доступа к интерфейсу Windows API см. главу 19 «Написание Windows-приложений с использованием J/Direct».

new

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

Button b = new Button("OK");

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

Типичный способ создания массива с помощью ключевого слова new выглядит так:

int array[] = new int[10];

null

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

package

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

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

private

Ключевое слово private — модификатор, используемый в объявлениях методов или переменных (в объявлениях локальных переменных он недопустим). Указав модификатор private в объявлении одного из этих элементов, Вы скрываете их, и к ним уже нельзя обращаться извне класса, в котором они -объявлены. Есть лишь одно исключение: методы и переменные, объявленные как private в пределах класса, доступны его внутренним классам.

protected

Ключевое слово protected — модификатор в объявлениях методов или переменных (в объявлениях локальных переменных он недопустим). Защищенная переменная или метод видимы только в пределах своих класса, подклассов или пакета, к которому относится данный класс. Однако подклассы могут находиться в разных пакетах.

public

Ключевое слово public — модификатор в объявлениях классов, интерфейсов, методов или переменных (в объявлениях локальных переменных он недопустим). Классы и интерфейсы, объявленные как public, видимы всем. А методы и переменные, объявленные как public, видимы там, где видимы их классы.

Имена открытых классов должны точно соответствовать именам JAVA-файлов, в которых они хранятся.

return

Ключевое слово return возвращает управление коду, вызвавшему метод или конструктор. Оператор return, указанный в методе, либо возвращает некое значение, либо просто передает управление вызвавшему коду. Если возвращаемое значение не требуется, непосредственно за

ключевым словом return ставится точка с запятой (а не значение); при этом в объявлении метода должно быть указано ключевое слово void. А если такое значение необходимо, в объявлении метода должен быть указан соответствующий тип возвращаемого значения. В конструкторах операторы return не могут возвращать значения.

short

Ключевое слово short объявляет простой тип данных Java для хранения значений в интервале от -32 768 до + 32 767. Размер short равен 16 битам независимо от платформы, на которой выполняется байтовый код Java.

Содержимое переменной типа short можно приводить к другим числовым данных (равно как и другие числовые типы — к short). Пример объявления переменной типа short и присвоения ей значения:

private short squareFeet;

squareFeet = 4600;

static

Ключевое слово static — модификатор для методов и переменных. Его можно использовать и для определения статических инициализирующих блоков.

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

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

super

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

switch

Ключевое слово switch используется вместе с ключевым словом case -а иногда и с default — для создания блочного оператора выбора по условию. За switch следует выражение в круглых скобках, оценка которого должна давать значение простого типа, встроенного в Java. После оценки выражения его значение сравнивается с константами в операторах case, расположенных в теле оператора switch. Если константа совпадает со значением, выполняются строки в соответствующем блоке case. Необязательный блок default вводят в тело оператора switch, когда нет гарантии, что константы в блоках case — единственно возможные значения, принимаемые выражением в switch. Пример типичного оператора switch:

switch (someExpression)

{

case 1: {

doCase1( ); break; } case 2:

{

doCase2( ); break; }

case 3: {

doCase3A( ); doCase3B( ); } default:

doDefault( ); }

В теле оператора switch, в конце блоков case обычно используется и ключевое слово break. Оно позволяет пропустить оставшуюся часть тела switch. Без оператора break продолжилась бы проверка остальных операторов case и в конечном счете был бы выполнен оператор default (если он есть).

synchronized

Ключевое слово synchronized — модификатор, определяющий реентерабельные (thread-safe) методы, и оператор, указывающий критические секции кода. При использовании в качестве модификатора он указывает, что данный метод в каждый момент может быть доступен лишь одному потоку. Если же synchronized применяется как оператор, то за ним следуют выражение в круглых скобках и блок операторов. Если результатом оценки выражения в скобках будет объектный тип или массив, программа монопольно захватывает этот элемент до тех пор, пока не будет выполнен указанный блок операторов.

this

Ключевое слово this применяется с методами и конструкторами экземпляра для ссылки на текущий объект. Если ключевое слово this указано в самом первом операторе тела конструктора, значит, объект создается при участии другого конструктора в том же классе. Например:

public class MyClass {

private long birthday;

private String name;

// первый конструктор MyClass(String bDay) {

birthday = formatBirthday(bDay); }

// второй конструктор MyClass(String nm, String bDay) {

this (bDay);

name = new String(nm); } }

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

throw

Ключевое слово throw обычно применяется в блоке try, тде оно сообщает, что возникла какая-то исключительная ситуация. За ключевым словом throw следует объект исключения, производный от класса Throwable и указывающий тип генерируемого исключения. Оператор throw прерывает нормальное выполнение программы и передает управление ближайшему оператору catch, способному обработать указанный объект исключения. Таким образом, оператор throw может находиться и вне блока try, если исключение предполагается перехватывать где-то в другом месте программы.

Следующий пример демонстрирует использование throw:

public void someMethod(int div) throws Exception1

{

try

{

if (div == 0)

throw new Exception1( );

}

catch(Exceptionl e1)

{

// исключение может быть обработано // в этом блоке catch

} }

throws

Ключевое слово throws используется в объявлении метода для перечисления любых исключений, которые могут быть вызваны данным методом, но не наследуются от класса Error или RuntimeException. (Исключения, наследуемые от Error, связаны, как правило, с серьезными системными проблемами, и поэтому с ними мало что можно сделать.) Вот типичное объявление метода с ключевым словом throws:

public int someMethod(int argument) throws Exceptionl, Exception2

{

// в этом методе может присутствовать блок try/catch

// для обнаружения и возможной обработки любых

// перехваченных исключений }

transient

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

Пример объявления переменной с модификатором transient: private transient int currentTime;

true

Ключевое слово true используется как одно из двух Булевых значений. Строго говоря, true не является ключевым словом языка Java; правильнее было бы назвать его литеральным значением, которое присваивается переменной типа boolean.

Пример для ключевого слова true см. в описании ключевого слова boolean.

try

Ключевое слово try указывает блок кода, в котором возможно исключение. Каждому оператору try должен соответствовать минимум один оператор catch. Если возникает исключение, проверяется параметр в catch, чтобы определить, способен ли он обработать это исключение. Если оно не обрабатывается ни одним из блоков catch, соответствующих try, управление передается вверх по цепочке вызовов методов в поисках подходящего обработчика для этого исключения. Если у блока try есть парный блок finally, последний выполняется независимо от того, нормально завершается блок {гу или внезапно прерывается.

Пример типичной конструкции try/catch/finally: try

{

// код внутри этого блока может вызвать исключение

}

catch(Exception1 e1) {

// код в этом блоке выполняется только при исключении

// типа Exception1, иначе блок игнорируется

}

catch(Exception2 e2)

{

// код в этом блоке выполняется только при исключении

// типа Exception2, иначе блок игнорируется

}

finally

{

// код в этом блоке выполняется всегда - независимо

// от того, появилось исключение в блоке try или нет;

// этот блок обычно используют для очистки

}

void

Ключевое слово void в объявлении метода указывает, что у данного метода нет возвращаемого значения.

Это ключевое слово поддерживается с большими ограничениями: в отличие от С, в Jaya с его помощью нельзя объявить об отсутствии у метода параметров, нет возможности определить void-указатели и т. д.

volatile

Ключевое слово volatile — модификатор, применяемый при объявлении переменных. Его присутствие означает, что значение переменной может асинхронно изменяться и поэтому компилятор не должен использовать ее при оптимизации кода.

while

Ключевое слово while образует циклическую конструкцию. В цикле while сначала оценивается выражение в круглых скобках справа от этого ключевого слова. Если результат проверки дает true, выполняются операторы в теле цикла. Если тело цикла состоит из целого блока операторов, его следует заключить в фигурные скобки. Выражение в начале цикла проверяется после каждой итерации, и тело цикла выполняется до тех пор, пока результат проверки не окажется равным false. Типичный пример цикла while:

while (i < 10) {

// операторы в этом блоке выполняются, если

// результат оценки выражения равен true

}

к оглавлению   к 4GL - визуальному программированию

Знаете ли Вы, почему "черные дыры" - фикция?
Согласно релятивистской мифологии, "чёрная дыра - это область в пространстве-времени, гравитационное притяжение которой настолько велико, что покинуть её не могут даже объекты, движущиеся со скоростью света (в том числе и кванты самого света). Граница этой области называется горизонтом событий, а её характерный размер - гравитационным радиусом. В простейшем случае сферически симметричной чёрной дыры он равен радиусу Шварцшильда".
На самом деле миф о черных дырах есть порождение мифа о фотоне - пушечном ядре. Этот миф родился еще в античные времена. Математическое развитие он получил в трудах Исаака Ньютона в виде корпускулярной теории света. Корпускуле света приписывалась масса. Из этого следовало, что при высоких ускорениях свободного падения возможен поворот траектории луча света вспять, по параболе, как это происходит с пушечным ядром в гравитационном поле Земли.
Отсюда родились сказки о "радиусе Шварцшильда", "черных дырах Хокинга" и прочих безудержных фантазиях пропагандистов релятивизма.
Впрочем, эти сказки несколько древнее. В 1795 году математик Пьер Симон Лаплас писал:
"Если бы диаметр светящейся звезды с той же плотностью, что и Земля, в 250 раз превосходил бы диаметр Солнца, то вследствие притяжения звезды ни один из испущенных ею лучей не смог бы дойти до нас; следовательно, не исключено, что самые большие из светящихся тел по этой причине являются невидимыми." [цитата по Брагинский В.Б., Полнарёв А. Г. Удивительная гравитация. - М., Наука, 1985]
Однако, как выяснилось в 20-м веке, фотон не обладает массой и не может взаимодействовать с гравитационным полем как весомое вещество. Фотон - это квантованная электромагнитная волна, то есть даже не объект, а процесс. А процессы не могут иметь веса, так как они не являются вещественными объектами. Это всего-лишь движение некоторой среды. (сравните с аналогами: движение воды, движение воздуха, колебания почвы). Подробнее читайте в FAQ по эфирной физике.

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution