Spec-Zone .ru
спецификации, руководства, описания, API
|
Один из наиболее распространенных операторов, с которыми Вы встретитесь, является простым оператором присваивания"=
". Вы видели этот оператор в Велосипеде class; это присваивает значение с его правой стороны от него к операнду с его левой стороны от него:
int cadence = 0; int speed = 0; int gear = 1;
Этот оператор может также использоваться на объектах присвоить ссылки на объект, как обсуждено в Создании Объектов.
Язык программирования Java предоставляет операторам, которые выполняют дополнение, вычитание, умножение, и разделение. Есть хороший шанс, Вы распознаете их их дубликатами в основной математике. Единственный символ, который мог бы выглядеть в новинку для Вас,"%
", который делит один операнд на другого и возвращает остаток как его результат.
+ additive operator (also used for String concatenation) - subtraction operator * multiplication operator / division operator % remainder operator
Следующая программа, ArithmeticDemo
, тестирует арифметические операторы.
class ArithmeticDemo { public static void main (String[] args){ // result is now 3 int result = 1 + 2; System.out.println(result); // result is now 2 result = result - 1; System.out.println(result); // result is now 4 result = result * 2; System.out.println(result); // result is now 2 result = result / 2; System.out.println(result); // result is now 10 result = result + 8; // result is now 3 result = result % 7; System.out.println(result); } }
Можно также объединить арифметические операторы с простым оператором присваивания, чтобы создать составные присвоения. Например, x+=1;
и x=x+1;
оба постепенно увеличивают значение x
1.
+
оператор может также использоваться для того, чтобы конкатенировать (присоединение) к двум строкам вместе, как показано в следующем ConcatDemo
программа:
class ConcatDemo { public static void main(String[] args){ String firstString = "This is"; String secondString = " a concatenated string."; String thirdString = firstString+secondString; System.out.println(thirdString); } }
К концу этой программы, переменной thirdString
содержит "Это - связанная строка.", который печатается к стандартному выводу.
Унарные операторы требуют только одного операнда; они выполняют различные операции, такие как постепенное увеличение/постепенное уменьшение значения одним, отрицание выражения, или инвертирование значения булева.
+ Unary plus operator; indicates positive value (numbers are positive without this, however) - Unary minus operator; negates an expression ++ Increment operator; increments a value by 1 -- Decrement operator; decrements a value by 1 ! Logical complement operator; inverts the value of a boolean
Следующая программа, UnaryDemo
, тестирует унарные операторы:
class UnaryDemo { public static void main(String[] args){ // result is now 1 int result = +1; System.out.println(result); // result is now 0 result--; System.out.println(result); // result is now 1 result++; System.out.println(result); // result is now -1 result = -result; System.out.println(result); boolean success = false; // false System.out.println(success); // true System.out.println(!success); } }
Операторы инкремента/декремента могут быть применены перед (префиксом) или после (постфикса) операнд. Код result++;
и ++result;
оба закончится в result
быть постепенно увеличенным одним. Единственная разница то, что префиксная версия (++result
) оценивает к постепенно увеличенному значению, тогда как постфиксная версия (result++
) оценивает к исходному значению. Если Вы только выполняете простой инкремент/декремент, он действительно не имеет значения, какую версию Вы выбираете. Но если Вы используете этот оператор в части большего выражения, тот, который Вы выбираете, может сделать значительную разницу.
Следующая программа, PrePostDemo
, иллюстрирует префиксный/постфиксный унарный оператор инкремента:
class PrePostDemo { public static void main(String[] args){ int i = 3; i++; // prints 4 System.out.println(i); ++i; // prints 5 System.out.println(i); // prints 6 System.out.println(++i); // prints 6 System.out.println(i++); // prints 7 System.out.println(i); } }