Валерий Яценков - Java за неделю. Вводный курс
- Название:Java за неделю. Вводный курс
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:9785449046840
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Валерий Яценков - Java за неделю. Вводный курс краткое содержание
Java за неделю. Вводный курс - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
По умолчанию файл проекта находится в папке Документы | NetBeansProjects. Внутри папки с именем проекта найдите папку dist. В этой папке находится готовый распространяемый файл приложения с расширением jar.
3.2 Приведение типов
Иногда возникает ситуация, когда в одном выражении присутствуют разные типы данных. Будем считать, что это осознанное действие, а не ошибка программиста, ибо такие ошибки чрезвычайно коварны. Несоответствие типов в выражении не всегда влечет за собой ошибку компиляции, но программа может вести себя не так, как ожидалось. Изменение типа данных в процессе выполнения программы называется приведением типа . Реализация приведения типов зависит от конкретного языка. Некоторые языки допускают большие вольности в приведении типов. За это их резко критикуют профессиональные программисты.
Про особенности приведения типов в разных языках программирования можно написать отдельную брошюру. Но в нашем вводном курсе мы ограничимся изложением основных принципов.
Приведение типов разделяется на явное (указанное программистом в коде) и неявное ( автоматическое ).
При явном приведении типов перед значением или выражением в скобках указывается новый тип, например:
double x = 15.7;
y = (int) 15.7;
В этом примере число с плавающей точкой приводится к типу «целое», при этом просто отбрасывается дробная часть. Результатом приведения будет усеченное значение 15, а не округленное 16.
Обратное преобразование из целого в число с плавающей точкой тоже выполняется, но это происходит автоматически. Запомните простое правило: если в выражении участвуют операнды разных типов, то результат приводится к тому типу, который занимает больше места в памяти . Поэтому важно, чтобы тип переменной, которой вы хотите присвоить результат вычислений, совпадал с типом результата. Вот простой пример приведения типов:
byte a = 2;
а = (byte) (a*5);
В этом примере целочисленный литерал 5 трактуется, как значение типа int, поэтому результат умножения будет расширен до типа int. Но переменная объявлена, как byte, поэтому возникнет конфликт выделения памяти и ошибка компиляции.
Чтобы избежать ошибки, мы в явном виде приводим результат умножения к типу byte. При этом из 32 байт остаются только младшие 8, а остальные отбрасываются. Это опасная потеря информации. Может получиться так, что при маленьких исходных значениях результат будет верным. Но стоит разрядности результата умножения превысить 8 битов, и после приведения типов вы получите неправильный результат вычислений. Такая блуждающая ошибка зависит от сочетания факторов и трудно поддается локализации в коде.
Автоматическое приведение типов часто применяется при суммировании строки и числа. В этом случае число автоматически преобразуется в строку и выполняется обычная конкатенация (слияние) строк. Например:
int yearNow = 2018;
System.out.println («Текущий год " + yearNow);
В окно терминала будет выведена строка «Текущий год: 2018».
Обратное преобразование из строки в число автоматически не выполняется. Необходимо воспользоваться специальными методами, такими как Integer.parseInt (), Double.parseInt () и т. п. в зависимости от нужного типа. В листинге 3.2 вы уже встречали преобразование из строки в число.
3.3 Основные операторы
Основные операторы языка Java можно разделить на четыре группы: арифметические, логические, битовые и операторы сравнения.
По количеству обязательных операндов в выражении операторы разделяются на унарные (один операнд), бинарные (два операнда) и тернарные (три операнда).
3.3.1 Арифметические операторы
К арифметическим операторам относятся сложение (+), вычитание (-), умножение (*), деление (/), вычисление остатка (%), инкремент (++) и декремент (– -).
Допустим, мы задали значения x=18 и y=4. Тогда результаты использования операторов будут выглядеть так:
Сложение:x + y = 22
Вычитание:x – y = 14
Умножение:x*y = 72
Пока ничего необычного, но дальше будет немного сложнее.
Деление:18 / 4 = 4
Неожиданно, не так ли? В языке Java результат деления одного целого числа на другое целое число будет целочисленным, остаток отбрасывается без округления. Получить результат деления с дробной частью можно двумя способами: объявить один или оба операнда как число с плавающей точкой или использовать явное приведение.
18 / 4.0 = 4.50
(double) 18/4 = 4.50
Вычисление остатка:18%4 = 2. При делении 18/4 нацело мы получаем частное 4 (4*4=16) и остаток 2 (18—16=2). Иными словами, остаток – это побочный продукт целочисленного деления.
Инкремент:оператор постфиксного инкремента x++ сперва возвращает исходное значение переменной, затем увеличивает его на единицу. Оператор префиксного инкремента ++x сперва увеличивает значение переменной на 1, затем возвращает новое значение.
Строка с постфиксным инкрементом
System.out.print (x++);
равнозначна последовательности команд
System.out.print (x);
x = x +1;
Строка с префиксным инкрементом
System.out.print (++x);
равнозначна последовательности команд
x = x +1;
System.out.print (x);
Декремент:оператор постфиксного декремента сперва возвращает исходное значение переменной, затем уменьшает его на единицу. Оператор префиксного декремента сперва уменьшает значение переменной на 1, затем возвращает новое значение.
Строка с постфиксным декрементом
System.out.print (x – -);
равнозначна последовательности команд
System.out.print (x);
x = x – 1;
Строка с префиксным декрементом
System.out.print (– – x);
равнозначна последовательности команд
x = x – 1;
System.out.print (x);
3.3.2 Логические операторы
Логические операторы предназначены для использования с логическими операндами и создания условий для логических операторов.
Логическое И (&) – результатом выражения A&B является true, если оба операнда имеют значение true. Если хотя бы один из операндов имеет значение false, то результатом является false.
Укороченное логическое И (&&) – выражение A&&B вычисляется точно так же, как A&B, но если при проверке операнда A оказывается, что оно равно false, то значение B уже не проверяется, а сразу возвращается значение false.
Логическое ИЛИ (|) – результатом выражения A|B является true, если значение хотя бы одного из операндов является true. В ином случае возвращается значение false.
Укороченное логическое ИЛИ (||) – результат выражения A||B совпадает с результатом A|B, но если при проверке операнда A оказывается, что он имеет значение true, то второй операнд не проверяется, и сразу возвращается значение true.
Логическое исключающее ИЛИ (^) – результатом выражения A^B является true, если один операнд имеет значение true, а другой имеет значение false. Если оба операнда одновременно имеют значение true, или оба операнда одновременно имеют значение false, то возвращается значение false.
Читать дальшеИнтервал:
Закладка: