Задать вопрос
Профиль пользователя заблокирован сроком «навсегда» без указания причины
  • Автоматическое преобразование и явное преобразование типов в JAVA?

    @bromzh
    Drugs-driven development
    Явное - это когда ты в скобках (либо через вызов методов) преобразуешь переменную одного типа к другому. При этом, не факт, что это преобразование пройдёт и пройдёт правильно.

    Автомат - это когда тип, который "больше" участвует в операциях с "меньшими" типами и нужно преобразование. Ява сама сумеет преобразовать, так как данные не теряются.

    Пример:
    int a = 70000;
    short b = 10;
    int c = a + b; // Тут b автоматом преобразуется к типу int, так как компилятор знает, 
    // что данные из него не потеряются при преобразовании.
    short d = (short) (a + b);


    Если убрать преобразование всей суммы к short, не скомпилится, типы не совпадают. Переменную "a" (вернее, всю сумму) надо преобразовать к short, но результат суммы будет int. short меньше int и данные из "а" могут потеряться. Нужно вручную преобразовывать.

    С классами всё примерно также.
    Ответ написан
    1 комментарий