![]() |
Java для программистов и разработчиков Архив от 14-05-2008 |
![]() | |
Выпуск 6. - Сложение, вычитание, NaNЗдравствуйте, дорогие читатели! Продолжаем изучать арифметические операторы языка Java. После умножения и деления по приоритености идут сложение и вычитание. Особенности их использования мы рассмотрим в данном выпуске. Сложение и вычитание (+ и -)За сложение и вычитание отвечают соответственно операторы + и -. Они применимы для операндов любых численных типов. Помимо этого, операция + применяется и для операндов типа String. Когда один из операндов типа String, то результат будет объектом типа String. Особенности оператора +В Java не допускается определять перегрузку операторов (то есть перепрограммирование операторов в зависимости от типа), как в С/С++. Но сам язык Java перегружает операторы автоматически. И это в общем-то не ново, поскольку многие языки программирования, которые поддерживают множественные арифметические типы, определяют автоматическую перегрузку арифметических операторов для примитивных типов. Java, помимо этого, имеет перегрузку оператора + для строкового типа (String). И результат действия оператора + в данном случае - это конкатенация, сцепление строк. Если один из операндов не строковый, то к нему будет предварительно применено приведение типа к строке. Перегрузка (overloading) - это термин, упоминаемый в том случае, когда одна и та же операция (оператор) используется для операндов (аргументов) различного типа. При этом поведение операции (оператора) определяется типом операндов, к котором она должна быть применена. Например, метод println() может применяться как для операндов строкового, так и целочисленного типа. Эти два использования, на самом деле, относятся к совершенно различным методам. Просто было использовано одно и то же имя операции. Аналогично, сложение (+) используется, как для целочисленных, так и для дробных типов. Но код, реализующий это сложение, совершенно различный. Вы все знаем, что произойдёт при сложении двух значений численного типа: операнды будут суммированы. Конечно, может случится и переполнение, если мы суммируем слишком большие числа. Но в общем и целом, поведение арифметических операторов не изобилует сюрпризами. Если переполнение происходит при арифметическом сложении или вычитании, никаких сообщений об ошибках или исключений мы не получаем. Дело обстоит совсем по-другому, если мы конкатенируем строки. Если оба оператора строки, то результат - это "скленная" строка. Если один из операторов строка, а второй - число, то число будет приведено к типу String. >>Читайте далее о приведении типов к строке, арифметических ошибках, NaN>> Дорогие читатели! Если у вас возникают вопросы по тексту рассылки, я с удовольствием на них отвечу. Мой почтовый адрес идёт последней строкой в данном выпуске (at означает @). Кроме того, присылайте мне интересующие вас темы, которые я могла бы осветить в рассылке, делитесь опытом или просто комментируйте. Я также буду рада и благодарна вам, если вы проголосуете за этот выпуск. Форма голосования находится внизу выпуска. Всего доброго, Внимание! По вопросам партнёрства обращаться на е-майл natalia.macheda at gmail.com © Наталия Македа 2008 |