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.>