» » Java Урок 13.Виды в выражениях.
27-03-2015, 14:19   Раздел: Программирование Java   Комментариев: 0  

Java Урок 13.Виды в выражениях.

Итак, определенное преображенье разновидностей мы можем исполнять в выражениях.
Осмотрим должно выражение:

byte a = 30;
byte b = 40;
byte c = 50;
int d = a * b / c;

Итак, мы лицезреем что при умножении членов a на b , значение выходит за спектры возможных значений оператора разновидности byte. Для вывода схожих тем , java автоматом увеличивает тип каждого оператора.
к примеру, из byte в short , из short в int, из char в int , и т д.
Да, автоматическое увеличение разновидностей очень комфортная вещь, но грызть и минусы.
К примеру последующий код приводиться к ошибке, так как происходит попытка сохранения творения 50*2 для идеально недопустимого значения разновидности byte:
byte b =50;
b = b * 2;

Наиболее понятнее будет на практике. потому что наиболее лояльно я расписать не могу, кризис настроения что ли:)
Сейчас жажду разглядеть верховодила роста разновидности.
В Java есть некоторое количество управлял роста разновидности, тот или иной надо уяснить:
Тип целых значений - byte , short и char - увеличиваются до int.
Ежели оператор располагает тип long , то и повыситься выражение до long.
И в конце концов, ежели оператор располагает тип double , то он и остается double.

Перед програмкой, что бы не имелось не поняток, жажду добавить информацию про литерал float:
По умолчанию фактический численный литерал в правой доли оператора направления обрабатывается как тип double. Следовательно, для инициализации переменной разновидности с плавающей запятой необходимо применять суффикс f либо F, как представлено в надлежащем образце:
float x = 3.5F;
Ежели в прошлом объявлении не применять суффикс, то будет выдана ошибка компиляции, так как это приведет к попытке сохранить значение разновидности double в переменной разновидности float.
Осмотрим програмку, тот или другой показывает увеличение разновидности 1-го оператора к иному:


public class privedenie {
public static void main(String agrs[]) {

byte b = сто;
char c = 'а';
short s = 5789;
int i = 1000000;
float f = 5.67f;
double d = .4853;
double result = (f * b) + (i / c) - (d * s);
System.out.println("result =" + result);

}

}

В этом образце переменные увеличиваются до определенных разновидностей, к примеру переменная b , увеличивается до float.
Рекомендую демонтировать и поиграть со значениями на предоставленном образце, а тем кому светло, можнож перебегать к должно уроку java -.
Обнаружили ошибку или мёртвую ссылку?
Выделите проблемный фрагмент мышкой и нажмите CTRL+ENTER.
В появившемся окне опишите проблему и отправьте уведомление Администрации ресурса.
Нужна органическая вечная ссылка из данной статьи? Постовой?
Подробности здесь
Опубликовал admin   Прочитано (раз): 1614   |   Оставлено комментариев: 0
Другие статьи и новости по теме:
[vk][/vk] [odnoklassniki][/odnoklassniki] [facebook][/facebook] [mailru][/mailru] [yandex][/yandex] [google][/google]
«    Март 2024    »
ПнВтСрЧтПтСбВс
 123
45678910
11121314151617
18192021222324
25262728293031