logo

Tipa apraide Java

Tipa apraide Java ir process, kurā viens datu tips tiek pārveidots par citu datu tipu, izmantojot liešanas operatoru. Ja piešķirat vērtību no viena primitīvā datu tipa citam tipam, to sauc par tipa atlaidi. Lai ļautu izmantot mainīgo noteiktā veidā, šī metode prasa skaidri norādīt Java kompilatoram, lai viena datu tipa mainīgais tiktu apstrādāts kā cita datu tipa mainīgais.

Sintakse:



 variableName = () value;>

Tipu liešanas veidi

Java ir divu veidu Type Casting:

  • Paplašināšanas veids Liešana
  • Šaura tipa liešana

Paplašināšanas veids Liešana

Zemāks datu tips tiek pārveidots par augstāku, izmantojot procesu, kas pazīstams kā paplašināšanas tipa liešana. Netiešā tipa liešana un nolaišana ir daži nosaukumi. Tas notiek dabiski. Tā kā nav datu zaudēšanas iespēju, tas ir drošs. Paplašināšanas tipa liešana notiek, ja:

  • Mērķa veidam ir jābūt lielākam par avota veidu.
  • Abiem datu tipiem jābūt savstarpēji saderīgiem.

Sintakse:



larger_data_type variable_name = smaller_data_type_variable;>


Java




masīvs 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);> >}> }>

lasīt no csv java
>

>

Izvade

Integer: 10 Long: 10 Double: 10.0>

Šaura tipa liešana

Lielāka datu veida samazināšanas process mazākā ir pazīstams kā sašaurinoša tipa apraide. Liešana uz augšu vai skaidra tipa liešana ir citi nosaukumi. Tas nenotiek tikai pats no sevis. Ja mēs to nepārprotami nedarīsim, radīsies kompilēšanas laika kļūda. Sašaurināšanas veida apraide nav droša, jo var tikt zaudēti dati, jo zemākam datu tipam ir mazāks atļauto vērtību diapazons. Apraides operators palīdz skaidras apraides procesā.

Sintakse:

smaller_data_type variable_name = (smaller_data_type) larger_data_type_variable;>

Piemērs:

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

>

java regulārajā izteiksmē
>

Izvade

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

Skaidras apraides veidi

Galvenokārt ir divu veidu tieša apraide:

  • Skaidra apraide
  • Skaidra lejupslīde

Skaidra apraide

Augšupielāde ir process, kurā apakštips tiek nodots supertipam mantojuma koka virzienā uz augšu. Ja uz apakšklases objektu atsaucas virsklases atsauces mainīgais, bez papildu piepūles tiek aktivizēts automātisks process.

Piemērs:

Java

myvecricket iekšā




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

>

>

Izvade

The dog barks>

Skaidra lejupslīde

Ja apakšklases tips attiecas uz vecāku klases objektu, process tiek saukts par lejupslīdi. Ja tas tiek darīts manuāli, kompilators izdod izpildlaika ClassCastException kļūdu. To var izdarīt, tikai izmantojot operatoru instanceof. Iespējama tikai tāda objekta nolaišana, kas jau ir pacelts.

Piemērs:

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

pievienojot virkni java
>

>

Izvade

The animal is eating. The cat is meowing.>