Constant function in java

Изучаем Java

Класс Math содержит набор математических функций, часто оказывающихся не­обходимыми при решении разных задач.
Чтобы извлечь квадратный корень из числа, применяют метод sqrt.
double х = 4;
double у = Math.sqrt(х);
System.out.println(у); // Печатает число 2.0.

Между методами println и sqrt есть небольшая разница. Метод println дей­ствует на объект System, out, имея второй параметр у — число, подлежащее вы­воду. (Напомним, что out — это объект, определенный в классе System и пред­ставляющий собой стандартное устройство вывода.)

В то же время метод sqrt в классе Math не работает ни с одним объектом. Он имеет единственный параметр х — число, из которого нужно извлечь корень. Такие методы называются статиче­скими.

В языке Java нет оператора возведения в степень: для этого нужно использовать метод pow из класса Math.

Оператор
double у = Math.pow(x,a) ;
присваивает переменной у значение переменной х, возведенное в степень а.

Оба параметра метода pow, а также возвращаемое им значение имеют тип double.

Класс Math содержит обычные тригонометрические функции:
Math.sin
Math.cos
Math.tan
Math.atan
Math.atan2

Кроме этого, в него включены экспоненциальная и обратная к ней логарифмиче­ская функции (натуральный логарифм):
Math.exp
Math.log

В классе определены также две константы
Math.PI
Math.E,
обозначающие аппроксимации чисел Пи и е.

Для повышения своей производительности функции в классе Math используют про­граммы из встроенного модуля для вычислений с плавающей точкой.
Если точность вычислений важнее скорости их выполнения, используйте класс strictMath.
Он реализует алгоритмы из библиотеки «Freely Distributable Math Library» («Свободно распространяемая библиотека математических функций») fdlibm, гарантирующей идентичность результатов на всех платформах.

Исходные тексты программ, реали­зующих эти алгоритмы, можно найти на web-странице http://www.netlib.org/fdlibm/index.html. (В библиотеке fdlibm дается несколько определений каждой функции, класс StrictMath следует версии IEEE754, имена функций в которой на­чинаются с буквы «е».)

Преобразования числовых типов

Часто возникает необходимость преобразовать один числовой тип в другой.

На рис. 3.1 показаны разрешенные преобразования.

Шесть черных стрелок на рис. 3.1 обозначают преобразования, которые выпол­няются без потери информации. Три серые стрелки означают преобразования, при которых может произойти потеря точности. Например, количество цифр в большом целом числе 123456789 превышает количество цифр, которое может быть представ­лено типом float.
Число, преобразованное в тип float, имеет правильную величи­ну, но несколько меньшую точность.

int n = 123456789;
float f = n; // Число n равно 1.23456789268.

Рис. 3.1 Разрешенные преобразования числовых типов

Если два значения объединяются бинарным оператором (например n+f, где n — целое число, a f — число с плавающей точкой), то перед выполнением операции оба операнда преобразовываются в числа, имеющие одинаковый тип.

Если хотя бы один из операндов имеет тип double, то второй тоже преобразо­вывается в число типа double.

В противном случае, если хотя бы один из операндов имеет тип float, то второй тоже преобразовывается в число типа float.
В противном случае, если хотя бы один из операндов имеет тип long, то второй тоже преобразовывается в число типа long.
В противном случае оба операнда преобразовываются в числа типа int.

Читайте также:  Svg image href css

Приведение числовых типов

В предыдущем разделе мы видели, что при необходимости значения типа int ав­томатически преобразовываются в значения типа double. С другой стороны, есть не­сколько очевидных ситуаций, когда число типа double рассматривается как целое. Преобразования чисел в языке Java возможны, однако, разумеется, при этом может происходить потеря информации. Такие преобразования называются приведением типа (cast).

Синтаксически приведение типа задается парой скобок, внутри которых
указывается желательный тип, а затем — имя переменной. Например,
double х = 9.997;
int nx = (int)x;

Теперь в результате приведения значения с плавающей точкой к целому типу пере­менная nх равна 9, поскольку при этом дробная часть числа отбрасывается.

Если нужно округлить число с плавающей точкой до ближайшего целого числа (что во многих случаях является намного более полезным), используется метод
Math.round.
double x = 9.997;
int nx = (int) Math. round (x);

Теперь переменная nx равна 10. При вызове метода round по-прежнему нужно выполнять приведение поскольку возвращаемое им значение имеет тип long, и присвоить его переменной типа int можно лишь с помощью явного приведения.

При попытке привести число одного типа к другому результат может выйти за пре­делы допустимого диапазона. В этом случае результат будет усечен.

Например, вы­ражение (byte) 300 равно 44. Поэтому рекомендуется явно проверять заранее, бу­дет ли результат лежать в допустимом диапазоне после приведения типов.

Приведение между булевским и целыми типами невозможно. Это предотвращает появление ошибок. В редких случаях для того, чтобы привести булевское значе­ние к числовому типу, можно использовать условное выражение
b ? 1 : 0.

Сергей Владимирцев
29.01.2011

Источник

Константы в Java на примерах

«Constant (константа)» – слово в английском языке, относящееся в основном к «ситуации, которая не меняется». Это одна из фундаментальных концепций программирования в Java, и у нее нет каких-либо специальных предпосылок или концепций, которые необходимо знать перед изучением, кроме базовых навыков программирования.

Константы в Java используются, когда необходимо реализовать «статическое» или постоянное значение для переменной. Язык программирования напрямую не поддерживает константы. Чтобы сделать любую переменную ею, мы должны использовать модификаторы static и final.

Синтаксис

static final datatype identifier_name = constant;
  • Модификатор static делает переменную доступной без загрузки экземпляра ее определяющего класса.
  • Последний модификатор делает переменную неизменной.

Причина, по которой мы должны использовать как статические, так и конечные модификаторы, заключается в том, что:

  • Когда мы объявим переменную «var» только как статическую, все объекты одного класса смогут получить доступ к этому ‘var’ и изменить его значения.
  • Когда мы объявляем переменную только как final, для каждого отдельного объекта будет создано несколько экземпляров одного и того же значения константы, и это неэффективно / нежелательно.
  • Когда мы используем как static, так и final, тогда «var» остается статичным и может быть инициализирован только один раз, что делает его надлежащей константой, которая имеет общую ячейку памяти для всех объектов своего содержащего класса.
Читайте также:  Python serial port list

Пример

static final int MIN_AGE = 18;

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

Поэтому вместо того, чтобы просить пользователя ввести минимальный возраст для сравнения, мы объявляем идентификатор MIN_AGE как постоянное целое число со значением 18.

import java.util.*; public class DrivingLicense < public static void main(String [] args)< Scanner sc = new Scanner(System.in); static final int MIN_AGE = 18; //Minimum age requirement int[] list = new int[5]; System.out.println("Enter the age of people:"); for(int i=0;i<5;i++)< list[i] = sc.nextInt(); >System.out.println("Result for eligibility:"); for(int i=0;i<5;i++) < if(list[i] >= MIN_AGE) System.out.println(i + " is Eligible"); else System.out.println(i + " is Not Eligible"); > > >

пример константы

Зачем нужны?

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

Статические и окончательные модификаторы

  • Статический модификатор в основном используется для управления памятью.
  • Это также позволяет переменной быть доступной без загрузки какого-либо экземпляра класса, в котором она определена.
  • Последний модификатор означает, что значение переменной не может измениться. Как только значение назначено переменной, другое значение не может быть переназначено той же переменной.

С помощью модификатора final типы данных Primitive, такие как int, float, char, byte, long, short, double, Boolean, можно сделать неизменяемыми / неизменяемыми. Вместе, как мы поняли ранее, эти модификаторы создают постоянную переменную.

Общий синтаксис

public static final int MAX_VALUE = 1000;

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

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

Пример 1

В этом примере мы использовали перечисление как enum Apple . Идентификаторы Jonathan, GoldenDel, RedDel, Winesap и Cortland называются константами перечисления.

Каждый из них неявно объявлен как публичный статический финальный член Apple. Переменная перечисления может быть создана как другая примитивная переменная. Он не использует «новый» для создания объекта.

‘ap’ имеет тип Apple, единственные значения, которые могут быть назначены (или могут содержать), являются значениями, определенными перечислением.

Все перечисления имеют два предопределенных метода: values() и valueOf(). Синтаксис этих встроенных методов:

public static enum-type [] .values() public static enum-type.valueOf (String str)

Метод values() дает массив, который состоит из списка констант перечисления. Метод valueOf() дает константу перечисления, значение которой соответствует строке, переданной в str.

Пример 2

enum Season < WINTER, SPRING, SUMMER, FALL; >class EnumExample < public static void main(String[] args) < for (Season s : Season.values()) System.out.println(s);//will display all the enum constants of Season Season s = Season.valueOf("WINTER"); System.out.println("S contains " + s);//output: S contains WINTER >>

встроенные методы перечисления

В приведенном выше примере мы использовали два встроенных метода перечисления.

Читайте также:  Your account has no php support

Источник

What is a constant and how to define constants in Java?

A constant is a variable whose value cannot change once it has been assigned. Java doesn’t have built-in support for constants.

A constant can make our program more easily read and understood by others. In addition, a constant is cached by the JVM as well as our application, so using a constant can improve performance.

To define a variable as a constant, we just need to add the keyword “final” in front of the variable declaration.

Syntax

The above statement declares the float variable “pi” as a constant with a value of 3.14f. We cannot change the value of «pi» at any point in time in the program. Later if we try to do that by using a statement like “pi=5.25f”, Java will throw errors at compile time itself. It is not mandatory that we need to assign values of constants during initialization itself.

In the below example, we can define the primitive data type (byte, short, int, long, float, double, boolean and char) variables as constants by just adding the keyword “final” when we declare the variable.

Example

public class ConstantsDemo < public static void main(String args[]) < final byte var1 = 2; final byte var2; var2 = -3; final short var3 = 32; final short var4; var4 = -22; final int var5 = 100; final int var6; var6 = -112; final long var7 = 20000; final long var8; var8 = -11223; final float var9 = 21.23f; final float var10; var10 = -121.23f; final double var11 = 20000.3223; final double var12; var12 = -11223.222; final boolean var13 = true; final boolean var14; var14 = false; final char var15 = 'e'; final char var16; var16 = 't'; // Displaying values of all variables System.out.println("value of var1 : "+var1); System.out.println("value of var2 : "+var2); System.out.println("value of var3 : "+var3); System.out.println("value of var4 : "+var4); System.out.println("value of var5 : "+var5); System.out.println("value of var6 : "+var6); System.out.println("value of var7 : "+var7); System.out.println("value of var8 : "+var8); System.out.println("value of var9 : "+var9); System.out.println("value of var10 : "+var10); System.out.println("value of var11 : "+var11); System.out.println("value of var12 : "+var12); System.out.println("value of var13 : "+var13); System.out.println("value of var14 : "+var14); System.out.println("value of var15 : "+var15); System.out.println("value of var16 : "+var16); >>

Output

value of var1 : 2 value of var2 : -3 value of var3 : 32 value of var4 : -22 value of var5 : 100 value of var6 : -112 value of var7 : 20000 value of var8 : -11223 value of var9 : 21.23 value of var10 : -121.23 value of var11 : 20000.3223 value of var12 : -11223.222 value of var13 : true value of var14 : false value of var15 : e value of var16 : t

Источник

Оцените статью