Содержание
· 1 ОПЕРАТОРЫ
o 1.1 Простые команды печати
o 1.2 Операторы Java
§ 1.2.1 Приоритет
§ 1.2.2 Присвоение
§ 1.2.3 Совмещение имен во время вызова методов
o 1.3 Арифметические операторы
§ 1.3.1 Основные математические операторы
§ 1.3.2 Унарные операторы плюс и минус
o 1.4 Автоувеличение и автоуменьшение
o 1.5 Операторы сравнения и логические операторы
§ 1.5.1 Проверка объектов на равенство
§ 1.5.2 Логические операторы
§ 1.5.3 Ускоренное вычисление
o 1.6 Литералы
o 1.7 Экспоненциальная запись
o 1.8 Поразрядные операторы
§ 1.8.1 Поразрядные логические операторы
§ 1.8.2 Операторы сдвига
o 1.9 Тернарный оператор «если-иначе»
o 1.10 Операторы + и += для String
o 1.11 Типичные ошибки при использовании операторов
o 1.12 Операторы приведения
o 1.13 Округление и усечение
o 1.14 Повышение
o 1.15 В Java отсутствует sizeof()
o 1.16 Сводка операторов
o 1.17 Резюме
На нижнем уровне операции с данными в Java осуществляются посредством операторов. Язык Java создавался на основе C++, поэтому большинство этих операторов и конструкций знакомы программистам на C иC++. Также в Java были добавлены некоторые улучшения и упрощения. Если вы .знакомы с синтаксисом C или C++, бегло просмотрите эту и следующую главу, останавливаясь на тех местах, в которых Javaотличается от этих языков. Если чтение дается вам с трудом, попробуйте обратиться к мультимедийному семинару Thinking in С, свободно загружаемому с сайта www.MindView.net. Он содержит аудиолекции, слайды, упражнения и решения, специально разработанные для быстрого ознакомления с синтаксисом C, необходимым для успешного овладения языком Java.
Простые команды печати
В предыдущей главе была представлена команда печати Java
System.out.println("Какая длинная команда...");
Вероятно, вы заметили, что команда не только получается слишком длинной, но и плохо читается. Во многих языках до и после Java используется более простой подход к выполнению столь распространенной операции. В главе 6 представлена концепция статического импорта, появившаяся в Java SE5, а также крошечная библиотека, упрощающая написание команд печати. Тем не менее для использования библиотеки не обязательно знать все подробности. Программу из предыдущей главы можно переписать в следующем виде:
//: operators/HelloDate.java
import java.util.*;
import static net.mindview.util.Print.*;
public class HelloDate {
public static void main(String[] args) {
print("Привет, сегодня: ");
print(new Date());
}
}
<spoiler text="Output:">
Привет, сегодня
Wed Oct 05 14-39 36 MDT 2005
</spoiler> Результат смотрится гораздо приятнее. Обратите внимание на ключевое слово static во второй команде import.
Чтобы использовать эту библиотеку, необходимо загрузить архив с примерами кода. Распакуйте его и включите корневой каталог дерева в переменную окружения CLASSPATH вашего компьютера. Хотя использование net.mindview.util.Print упрощает программный код, оно оправданно не везде. Если программа содержит небольшое количество команд печати, я отказываюсь от import и записываю полный вызов System.out.println().
Операторы Java
Оператор получает один или несколько аргументов и создает на их основе новое значение. Форма передачи аргументов несколько иная, чем при вызове метода, но эффект тот же самый. Сложение (+), вычитание и унарный минус (-), умножение (*), деление (/) и присвоение (=) работают одинаково фактически во всех языках программирования.
Все операторы работают с операндами и выдают какой-то результат. Вдобавок некоторые операторы могут изменить значение операнда. Это называется побочным эффектом. Как правило, операторы, изменяющие значение своих операндов, используются именно ради побочного эффекта, но вы должны помнить, что полученное значение может быть использовано в программе и обычным образом, независимо от побочных эффектов.
Почти все операторы работают только с примитивами. Исключениями являются =, ==, !=, которые могут быть применены к объектам (и создают немало затруднений). Кроме того, класс String поддерживает операции + и +=.