logo

Typování v Javě

Typecasting v Javě je proces převodu jednoho datového typu na jiný datový typ pomocí operátoru casting. Když přiřadíte hodnotu z jednoho primitivního datového typu jinému typu, nazývá se to přetypování. Aby bylo možné použít proměnnou specifickým způsobem, vyžaduje tato metoda explicitní pokyn kompilátoru Java, aby zacházel s proměnnou jednoho datového typu jako s proměnnou jiného datového typu.

Syntax:



 variableName = () value;>

Typy typového lití

V Javě existují dva typy Type Casting:

  • Odlévání typu rozšíření
  • Odlitek úzkého typu

Odlévání typu rozšíření

Nižší datový typ je transformován na vyšší pomocí procesu známého jako rozšiřující typ casting. Casting implicitního typu a casting down jsou pro to některé názvy. Vyskytuje se přirozeně. Vzhledem k tomu, že neexistuje žádná šance na ztrátu dat, je to bezpečné. Odlévání typu rozšíření nastává, když:

  • Cílový typ musí být větší než typ zdroje.
  • Oba datové typy musí být vzájemně kompatibilní.

Syntax:



larger_data_type variable_name = smaller_data_type_variable;>


Jáva




java matematický pow



// 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);> >}> }>

>

>

Výstup

počítat zřetelně
Integer: 10 Long: 10 Double: 10.0>

Odlitek úzkého typu

Proces zmenšování většího datového typu na menší se nazývá casting typu zúžení. Casting up nebo explicitní typ casting jsou jiné názvy. Nestane se to samo od sebe. Pokud to výslovně neuděláme, dojde k chybě při kompilaci. Zúžení typu přetypování není bezpečné, protože může dojít ke ztrátě dat kvůli menšímu rozsahu povolených hodnot nižšího datového typu. Operátor castingu pomáhá v procesu explicitního castingu.

Syntax:

smaller_data_type variable_name = (smaller_data_type) larger_data_type_variable;>

Příklad:

Jáva




// 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);> >}> }>

>

>

Výstup

Original Value before Casting100.245 After Type Casting to short 100 After Type Casting to int 100>

Typy explicitního castingu

Existují hlavně dva typy Explicit Casting:

  • Explicitní upcasting
  • Explicitní downcasting

Explicitní upcasting

Upcasting je proces přetypování podtypu na nadtyp ve směru nahoru ve stromu dědičnosti. Když se na objekt podtřídy odkazuje referenční proměnná nadtřídy, spustí se automatický proces bez jakéhokoli dalšího úsilí.

Příklad:

Jáva

vicky kaushal věku




// 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();> >}> }>

>

jaká je velikost obrazovky mého počítače

>

Výstup

The dog barks>

Explicitní downcasting

Když typ podtřídy odkazuje na objekt nadřazené třídy, proces se nazývá downcasting. Pokud se to provede ručně, kompilátor vydá chybu ClassCastException za běhu. To lze provést pouze pomocí operátoru instanceof. Možné je pouze downcast objektu, který již byl vyslán.

Příklad:

Jáva




// 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();> >}> }>

>

>

Výstup

The animal is eating. The cat is meowing.>