Компонентный подход в программировании


         

Выражения


В обоих языках выражения строятся при помощи применения операторов к именам и литералам. Условно можно считать, что имеется следующий общий набор операторов:

  • x.y — оператор уточнения имени, служит для получения ссылки на элемент пространства имен или типа, либо для получения значения поля (или свойства в C#);
  • f(x) — оператор вызова метода (а также делегата в C#) с заданным набором аргументов;
  • a[x] — оператор вычисления элемента массива (а также обращения к индексеру в C#);
  • new — оператор создания нового объекта (или значения в C#), используется вместе с обращением к одному из конструкторов типа — new MyType("Yes", 2) (в Java с его помощью нельзя создавать значения примитивных типов);
  • ++, -- — префиксные и постфиксные унарные операторы увеличения/уменьшения на 1;
  • (T)x — оператор явного приведения к типу T;
  • +, - — унарные операторы сохранения/изменения знака числа;
  • ! — унарный оператор логического отрицания;
  • ~ — унарный оператор побитового отрицания;
  • *, /, %, +, - — бинарные операторы умножения, деления, взятия остатка по модулю, сложения и вычитания;
  • <<, >> — бинарные операторы побитовых сдвигов влево/вправо;
  • <, >, <=, >= — бинарные операторы сравнения по порядку;
  • ==, != — бинарные операторы сравнения на равенство/неравенство;
  • &, |, ^ — бинарные операторы логических или побитовых операций: конъюнкции, дизъюнкции, сложения по модулю 2;
  • &&, || — бинарные операторы условных конъюнкции и дизъюнкции, (x && y) эквивалентно (x?y:false), a (x || y) — (x?true:y);
  • ?: — тернарный условный оператор, выражение a?x:y вычисляет значение a, если оно true, то вычисляется и возвращается значение x, иначе вычисляется и возвращается значение y;
  • =, *=, /=, %=, +=, -=, <<=, >>=, &=, |=, ^= — бинарные операторы присваивания, все они, кроме первого, сначала производят некоторую операцию над старым значением левого операнда и значением правого, а затем присваивают полученный результат левому операнду.

Таблица 10.1. Приоритет и ассоциативность операторов

ОператорыАссоциативность
x.y, f(x), a[x], new, x++, x--
+, -, !, ~, ++x, --x, (T)x
*, /, % левая
+, - левая
<<, >> левая
<, >, <=, >= левая
==, != левая
& левая
^ левая
| левая
&& левая
|| левая
?: правая
=, *=, /=, %=, +=, -=, <<=, >>=, &=, |=, ^= правая



Содержание  Назад  Вперед