— Привет, Амиго!
— Привет, Элли!
— Сегодня у меня хорошее настроение, поэтому расскажу тебе кое-что интересное. И начну я с типизации примитивных типов в Java.
— В Java у каждого объекта и у каждой переменной есть свой жёстко заданный неизменяемый тип. Тип переменной определяется ещё в процессе компиляции программы, тип объекта – при его создании. Тип нового созданного объекта и/или переменной остаются неизменными все их время жизни. Пример:
Код на Java | Описание |
---|---|
|
a / b – это деление нацело. Ответом будет два. Остаток от деления просто отбрасывается. |
|
В d будет храниться остаток от деления a на b нацело. Остаток равен 3. |
— Но есть и пара интересных нюансов, которые следует помнить.
— Во-первых, ссылочная переменная не всегда хранит значение такого же типа, как и она.
— Во-вторых, при взаимодействии переменных двух разных типов, они должны быть сначала преобразованы к одному общему типу.
— А как же деление? Если разделить 1 на 3, мы получим 0.333(3). Ведь так?
— Нет не так. При делении двух целых чисел, результатом тоже будет целое число. Если разделить 5 на 3, то ответом будет 1 и два в остатке. Остаток при этом отбрасывается.
— Если разделить 1 на 3, то мы получим 0 (и единицу в остатке, который отбросится).
— А что делать, если я все же хочу получить 0.333 ?
— В Java числа перед делением лучше всего приводить к вещественному (дробному) типу путем умножения их на вещественную единицу – 1.0
Код на Java | Описание |
---|---|
|
a будет содержать 0 |
|
d будет содержать 0.0 |
|
d будет содержать 0.333(3) |
|
d будет содержать 0.333(3) |
|
d будет содержать 0.7142857142857143 |
— Понятно.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ