Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GoslingJava2.doc
Скачиваний:
139
Добавлен:
23.02.2016
Размер:
2.39 Mб
Скачать

14.7. Безопасность

Класс System содержит два метода для работы с объектом класса Security Manager. Класс SecurityManager включает в себя методы, которые разрешают или запрещают открытие сокетов (sockets), доступ к файлам, создание программных потоков и т.д. Подробности о работе менеджера безопасности приведены в спецификации “Java Language Specification”.

public static void setSecurityManager(SecurityManager s)

Задает системный объект, который является менеджером безопасности. Данное значение может быть присвоено только один раз, чтобы при настройке безопасности системы можно было рассчитывать на то, что оно не изменится.

public static SecurityManager getSecurityManager()

Выдает системный объект менеджера безопасности. Описание менеджера безопасности слишком усложнило бы эту книгу; за подробностями обращайтесь к онлайновой документации.

14.8. Класс Math

Класс Math состоит из статических констант и методов, предназначенных для математических вычислений общего назначения. Все операции выполняются в арифметике double.

Константа Math.E представляет значение числа e (2.7182818284590452354), а Math.PI— значение числа p (3.14159265358979323846). Значения углов в методах задаются в радианах, а все параметры и возвращаемые значения имеют тип double, если явно не оговорено обратное:

Функция

Значение

sin(a)

синус a

cos(a)

косинус a

tan(a)

тангенс a

asin(v)

арксинус v, где v лежит в диапазоне [–1.0, 1.0]

acos(v)

арккосинус v, где v лежит в диапазоне [–1.0, 1.0]

>atan(v)

арктангенс v, возвращается в диапазоне [–p/2, p/2]

atan2(x,y)

арктангенс x/y, возвращается в диапазоне [–p, p]

exp(x)

ex

pow(y,x)

yx

log(x)

натуральный логарифм x

sqrt(x)

квадратный корень из x

ceil(x)

наименьшее целое число x

floor(x)

наибольшее целое число x

rint(x)

возвращает округленное целое значение x в виде double

round(x)

возвращает (int)floor(x+0.5) в виде double или float

abs(x)

возвращает модуль x для любого числового типа

max(x,y)

возвращает наибольшее из чисел x и y, относящихся к любому числовому типу

min(x,y)

возвращает наименьшее из чисел x и y, относящихся к любому числовому типу

Статический метод Math.IEEERemainder вычисляет остаток в соответствии со стандартом IEEE-754. Оператор вычисления остатка %, описанный в разделе 5.15.1, подчиняется правилу

(x/y)*y + x%y == x

При этом сохраняется всего один вид симметрии, а именно: если x%y равно z, то изменение знака x или y изменит знак z, но не повлияет на абсолютную величину. Например, 7%2.5 дает 2.0, а -7%2.5 равняется 2.0. Стандарт IEEE определяет поведение остатка для x и y иначе, сохраняя симметрию расположения на числовой оси— результат Math.IEEERemainder(-7, 2.5) будет равен -0.5. Оператор вычисления остатка делает значения симметричными относительно нуля на числовой оси, тогда как механизм работы с остатком по стандарту IEEE разносит получившиеся величины на y единиц. Метод присутствует потому, что обе разновидности остатка могут пригодиться.

Статический метод random генерирует псевдослучайное число r в диапазоне 0,0 r 1,0. Средства для более точного управления псевдослучайными числами рассматриваются в разделе “Класс Random” на стр..

Упражнение 14.5

Напишите программу-калькулятор, которая работает со всеми этими функциями, а также (по меньшей мере) с базовыми операторами +, -, *, / и %. Вероятно, проще всего будет реализовать калькулятор с обратной польской нотацией, поскольку приоритет операторов значения не имеет.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]