Pretvorba tipov v Javi je postopek pretvorbe ene podatkovne vrste v drugo podatkovno vrsto z uporabo operatorja za pretvorbo. Ko dodelite vrednost iz enega primitivnega podatkovnega tipa drugemu tipu, je to znano kot pretvorba tipa. Če želite omogočiti uporabo spremenljivke na določen način, ta metoda zahteva izrecno navodilo prevajalniku Java, naj obravnava spremenljivko enega podatkovnega tipa kot spremenljivko drugega podatkovnega tipa.
Sintaksa:
variableName = () value;>
Vrste vlivanja tipov
V Javi obstajata dve vrsti predvajanja tipov:
- Razširitev tipa Casting
- Ulivanje ozkega tipa
Razširitev tipa Casting
Nižji podatkovni tip se pretvori v višji s postopkom, znanim kot razširitveno ulivanje tipa. Implicitno ulivanje tipa in ulitje je nekaj imen za to. Nastane naravno. Ker ni možnosti izgube podatkov, je varen. Ulivanje vrste širitve se zgodi, ko:
for zanka v Javi
- Ciljni tip mora biti večji od izvornega tipa.
- Oba tipa podatkov morata biti med seboj združljiva.
Sintaksa:
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);> > }> }> |
pretvori objekt java v json
>
>Izhod
Integer: 10 Long: 10 Double: 10.0>
Ulivanje ozkega tipa
Postopek zmanjševanja večjega podatkovnega tipa v manjšega je poznan kot ulivanje zoženega tipa. Prelivanje ali eksplicitno ulivanje tipa sta druga imena za to. Ne zgodi se samo od sebe. Če tega izrecno ne storimo, bo prišlo do napake med prevajanjem. Zoženje tipa ni varno, ker lahko pride do izgube podatkov zaradi manjšega obsega dovoljenih vrednosti nižje vrste podatkov. Operater za oddajanje pomaga pri procesu eksplicitnega oddajanja.
Sintaksa:
smaller_data_type variable_name = (smaller_data_type) larger_data_type_variable;>
primer:
Java
povezan seznam v Javi
// 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);> > }> }> |
>
>Izhod
Original Value before Casting100.245 After Type Casting to short 100 After Type Casting to int 100>
Vrste eksplicitnega oddajanja
V glavnem obstajata dve vrsti eksplicitnega predvajanja:
- Eksplicitno upcasting
- Eksplicitno znižanje
Eksplicitno upcasting
Pretvorba navzgor je postopek pretvorbe podtipa v nadtip v smeri dednega drevesa navzgor. Ko se referenčna spremenljivka nadrazreda sklicuje na objekt podrazreda, se sproži samodejni postopek brez nadaljnjega truda.
primer:
Java
vrzi niz v int 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();> > }> }> |
>
>Izhod
The dog barks>
Eksplicitno znižanje
Kadar se tip podrazreda nanaša na objekt nadrejenega razreda, se postopek imenuje znižanje. Če se to izvede ročno, prevajalnik izda napako ClassCastException med izvajanjem. To je mogoče storiti le z uporabo operatorja instanceof. Možna je samo pretvorba objekta, ki je že bil preoblikovan.
primer:
Java
diana mary blacker
// 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();> > }> }> |
>
>Izhod
The animal is eating. The cat is meowing.>