|
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);
}
}