Приведення типів у Java — це процес перетворення одного типу даних в інший тип даних за допомогою оператора приведення. Коли ви присвоюєте значення з одного примітивного типу даних іншому типу, це називається приведенням типу. Щоб дозволити використання змінної певним чином, цей метод вимагає явної вказівки компілятору Java обробляти змінну одного типу даних як змінну іншого типу даних.
numpy linspace
Синтаксис:
variableName = () value;>
Типи приведення типу
У java існує два типи приведення типів:
- Лиття типу розширення
- Лиття вузького типу
Лиття типу розширення
Нижчий тип даних перетворюється на вищий за допомогою процесу, відомого як розширення типу. Неявне приведення типу та приведення вниз — це деякі його назви. Це відбувається природним шляхом. Оскільки немає ймовірності втрати даних, це безпечно. Приведення типу розширення відбувається, коли:
- Цільовий тип має бути більшим за вихідний.
- Обидва типи даних повинні бути сумісні один з одним.
Синтаксис:
larger_data_type variable_name = smaller_data_type_variable;>
Java
// Java program to demonstrate Widening TypeCasting> import> java.io.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >int> i =>10>;> > >// Wideing TypeCasting (Automatic Casting)> >// from int to long> >long> l = i;> > >// Wideing TypeCasting (Automatic Casting)> >// from int to double> >double> d = i;> > >System.out.println(>'Integer: '> + i);> >System.out.println(>'Long: '> + l);> >System.out.println(>'Double: '> + d);> >}> }> |
>
>Вихід
Integer: 10 Long: 10 Double: 10.0>
Лиття вузького типу
Процес зменшення розміру більшого типу даних у менший відомий як приведення типу звуження. Приведення або явне приведення типу є іншими його назвами. Це не відбувається само собою. Якщо ми не зробимо цього явно, виникне помилка під час компіляції. Звуження типу приведення є небезпечним, оскільки втрата даних може статися через менший діапазон дозволених значень нижчого типу даних. Оператор приведення допомагає в процесі явного приведення.
Синтаксис:
smaller_data_type variable_name = (smaller_data_type) larger_data_type_variable;>
приклад:
Java
// Java Program to demonstrate Narrow type casting> import> java.io.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >double> i =>100.245>;> > >// Narrowing Type Casting> >short> j = (>short>)i;> >int> k = (>int>)i;> > >System.out.println(>'Original Value before Casting'> >+ i);> >System.out.println(>'After Type Casting to short '> >+ j);> >System.out.println(>'After Type Casting to int '> >+ k);> >}> }> |
>
>Вихід
Original Value before Casting100.245 After Type Casting to short 100 After Type Casting to int 100>
Типи явного кастингу
В основному існує два типи явного кастингу:
- Явне перетворення
- Явне переведення
Явне перетворення
Переведення вгору — це процес приведення підтипу до супертипу в напрямку дерева успадкування вгору. Коли посилальна змінна суперкласу посилається на об’єкт підкласу, без будь-яких подальших зусиль запускається автоматичний процес.
приклад:
Java
// Java Program to demonstrate Explicit Upcasting> import> java.io.*;> > class> Animal {> >public> void> makeSound()> >{> >System.out.println(>'The animal makes a sound'>);> >}> }> > class> Dog>extends> Animal {> >public> void> makeSound()> >{> >System.out.println(>'The dog barks'>);> >}> > >public> void> fetch()> >{> >System.out.println(>'The dog fetches a ball'>);> >}> }> class> GFG {> >public> static> void> main(String[] args)> >{>// Upcasting> >Animal animal =>new> Dog();> >// Calls the overridden method in Dog class> >animal.makeSound();> >// This would give a compile error as fetch() is not> >// a method in Animal class> >// animal.fetch();> >}> }> |
>
>
що таке f5 на клавіатуріВихід
The dog barks>
Явне переведення
Коли тип підкласу посилається на об’єкт батьківського класу, процес називається низведенням. Якщо це зроблено вручну, компілятор видає помилку виконання ClassCastException. Це можна зробити лише за допомогою оператора instanceof. Можливе лише перетворення об’єкта, який вже було переведено вгору.
приклад:
Java
// Java Program to demonstrate Explicit downcasting> import> java.io.*;> class> Animal {> >public> void> eat()> >{> >System.out.println(>'The animal is eating.'>);> >}> }> > class> Cat>extends> Animal {> >public> void> meow()> >{> >System.out.println(>'The cat is meowing.'>);> >}> }> > class> GFG {> >public> static> void> main(String[] args)> >{> >Animal animal =>new> Cat();> >animal.eat();> > >// Explicit downcasting> >Cat cat = (Cat)animal;> >cat.meow();> >}> }> |
>
>Вихід
The animal is eating. The cat is meowing.>