Приведение — это процесс, при котором переменная ведет себя как переменная другого типа. В этой статье мы подробно обсудим приведение типов в Java на примере.

Разработчики программного обеспечения и приложений знают, как быстро меняются отраслевые требования. Однако некоторые инструменты продолжают оставаться актуальными даже во времена постоянно меняющихся трендов. Java, несомненно, лучший выбор для разработчиков программного обеспечения и программистов в настоящее время по многим многообещающим причинам.

Основные правила кастинга в Java

Начало хорошего руководства по приведению типов в Java всегда должно начинаться с определения термина. Приведение включает в себя взятие одного объекта определенного типа и преобразование его в объект другого типа. Это одна из основных причин, по которой приведение типов и преобразование можно найти в качестве аналогичных процессов в Java. Следует отметить, что приведение типов характерно не только для Java, поскольку многие другие языки программирования также поддерживают приведение типов переменных.

Однако в Java есть определенные ограничения на приведение переменных, поэтому вы не можете приводить любую переменную к произвольному типу. Поэтому вам нужно сосредоточиться на правилах приведения Java, чтобы понять лучшие способы приведения. Одно из основных правил проявляется в приведении классов и интерфейсов в иерархии одного и того же типа друг к другу.

Приведение двух объектов без похожего типа иерархии может привести к ошибке времени компиляции. Еще одно важное следствие правил приведения типов Java проявляется в приведении типов объектов в схожей иерархии типов, хотя и с разницей в типе объекта, который вы приводите, и объекта, к которому вы приводите. Результатом этого отклонения будет ClassCastException в Java.

Кастинг примитивов

Одна из основных проблем, связанных с приведением типов в Java, связана непосредственно с двумя группами типов в Java. Два типа групп примитивные и эталонные. Первое внимание в этом дискурсе будет уделено приведению примитивов для обеспечения преобразования типов. Примитивы относятся к типам данных int, double, float, long и другим.

С другой стороны, ссылки включают классы типов, массивы или интерфейсы. Однако один из важных моментов, связанных с приведением типов в Java, относится к неявным и явным изменениям. В некоторых случаях система могла сама изменить тип выражения на основе определенных требований. Возьмем во внимание следующий пример,

int num1 = 5;
double num2;
double a = num1 / num2;

В случае с последней строкой кода вы можете наблюдать автоматическое приведение типов num1 к double.

Следующий важный момент связан с явным приведением типов, которое в Java также известно как приведение типов. Программист должен указать тип, к которому должен быть приведен объект, если определенные изменения не происходят автоматически. Основной синтаксис для приведения типов следующий:

Identifier2 = (type) identifier1;
For example, num1 = (int) num2;
Widening and narrowing primitives

Продолжая сужение и расширение примитивов, становится легче развить общее понимание приведения типов в Java. Расширение типов примитивов или масштабирование включает в себя преобразование от меньшего примитива к большему примитиву назначения. В ходе расширения примитивов меньшее значение примитива предполагает больший контейнер, оставляя много дополнительного пространства. В результате пространство слева заполнено нулями, и вы можете перейти к плавающей запятой из целочисленной группы. Возьмите следующий пример, чтобы понять расширение примитивов в приведении типов Java.

int myInt = 12;
long myLong = myInt;
float myFloat = myLong;
double myDouble = myLong;

Приведенный выше пример возможен, поскольку переход к более широкому примитиву не приводит к потере информации. Проще говоря, расширение примитивов объясняет основы преобразования в Java. Сужение примитивов — это еще одна форма приведения, в которой вы подбираете большее значение, чем тип, указанный в объявлении переменной. В результате потеря информации обязательна из-за отбрасывания некоторых байтов. Сужение примитивов также требует явного описания использования приведения и дает базовое представление о приведении к понижению в Java. Взгляните на следующий пример, чтобы лучше понять его. Наш спонсор Java Training Institute в Ченнае.

int myInt = (int) myDouble;
byte myByte = (byte) myInt;        
Upcasting and Downcasting:

Теперь давайте сосредоточимся на двух типах приведения, т. е. восходящем и понижающем приведении в Java, для дальнейшего обсуждения. Восходящее приведение включает приведение к супертипу, а понижающее приведение относится к приведению к подтипу. Оба этих типа приведения в вариантах Java помогают обеспечить такие преимущества, как полиморфизм или возможность группировки различных объектов. Повышение приведения относится к обобщению или расширению путем приведения к родительскому типу.

Описание приведения простыми словами предполагает приведение отдельного типа к общему типу. С другой стороны, понижающее приведение является полной противоположностью и включает приведение к дочернему типу или приведение общего типа к индивидуальному типу. Необходимость повышения приведения в Java не совсем обязательна. Повышение приведения очевидно в сценариях, где вам нужно написать код, работающий только с родительским классом. С другой стороны, потребность в понижающем приведении в Java возникает, когда вам нужно получить доступ к поведению подтипов.

Источник обучения: https://www.whizlabs.com/blog/casting-in-java/