Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
1 / 1 / 2
Регистрация: 17.03.2016
Сообщений: 215
1

Преобраование типов в языке Java

26.11.2017, 11:57. Показов 614. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет всем.
Прочитал, что сужающее преобраование типов должно быть произведено явно, т.е. такой код даст ошибку:
Java
1
2
int i = 13;
byte b = i; // ошибка
Правильно так:
Java
1
2
int i = 13;
byte b = (byte) i; // правильно
У меня такой вопрос: я прочитал что целочисленные литералы (2, 8, 14, .....) воспринимаются в Java как числа типа int. Но при этом я могу объявить и инициализировать переменную и работать с ней:
Java
1
2
3
byte a = 12; // правильно
 
// далее код ...
И ошибки не будет. А почему так? Ведь тут по идее справа от знака "равно" число 12 типа int. И оно присваивается переменной "а" типа byte. Сужающее преобразование. Делаем неявно, но ошибку не выдает. Поясните почему так?

Добавлено через 6 минут
Java
1
2
3
4
byte b1 = 15; // и так правильно
byte b2 = (byte) 16; // и так правильно
 
System.out.println(b1 + " " + b2);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.11.2017, 11:57
Ответы с готовыми решениями:

Преобраование массива
Как массив X AAA BBB CCC преобразовать в массив Y, чтобы массив Y имел вид : ...

Размеры типов в Java
Здравствуйте, киберчане. Как все мы знаем в Java существует 8 примитивных типов данных и...

Стирание типов в Java
Отрывок с книги по которому есть пару вопросов: "Обычно подробно знать, каким образом компилятор...

Преобразование типов в JAVA
Добрый вечер. Мне нужна помощь с преобразованием типов. У меня такой вопрос: можно ли...

2
Am I evil? Yes, I am!
Эксперт PythonЭксперт Java
17573 / 10326 / 2820
Регистрация: 21.10.2017
Сообщений: 22,388
26.11.2017, 12:15 2
byte приводится к int при арифметических операциях

Добавлено через 9 минут
А так - декларировал byte, будет тебе byte.
1
Эксперт функциональных языков программированияЭксперт Java
4486 / 2721 / 485
Регистрация: 28.04.2012
Сообщений: 8,590
26.11.2017, 14:10 3
Цитата Сообщение от alex_7 Посмотреть сообщение
А почему так?
Потому что значение известно на этапе компиляции и компилятор видит, что оно входит в диапазон значений byte и может преобразовать его без потерь.
1
26.11.2017, 14:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.11.2017, 14:10
Помогаю со студенческими работами здесь

Расширение типов в java
Итак есть такой код long a =0x1_0000_0000L+ 0xCAFE_BABE; System.out.println(a ==...

Представление целочисленных типов в Java
Здравствуйте. Не могу понять написанное в книге: Проясните, пожалуйста, написанное....

Лабораторная на языке java
Требуется разработать программу для определения медианной зарплаты в Москве и Московской области по...

По какому правилу осуществляется приведение типов в Java
Совсем уже запутался)) Знаю как это делать, но четко правило сформулировать не могу((( Подскажите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru