U Javi, lijevanje tipa je metoda ili proces koji pretvara tip podataka u drugi tip podataka na oba načina, ručno i automatski. Automatsku pretvorbu obavlja kompilator, a ručnu pretvorbu obavlja programer. U ovom odjeljku ćemo raspravljati lijevanje tipa i njegove vrste s pravilnim primjerima.
Lijevanje tipa
Pretvaranje vrijednosti iz jedne vrste podataka u drugu vrstu podataka poznato je kao lijevanje tipa .
fibonaccijev niz u Javi
Vrste lijevanja tipa
Postoje dvije vrste lijevanja tipa:
- Lijevanje tipa proširenja
- Lijevanje tipa sužavanja
Lijevanje tipa proširenja
Pretvaranje nižeg tipa podataka u viši zove se širenje lijevanje tipa. Također je poznat kao implicitna pretvorba ili bacanje dolje . To se radi automatski. Sigurno je jer nema šanse da izgubite podatke. Događa se kada:
- Obje vrste podataka moraju biti međusobno kompatibilne.
- Vrsta cilja mora biti veća od vrste izvora.
byte -> short -> char -> int -> long -> float -> double
Na primjer, pretvorba između numeričkog tipa podataka u char ili Boolean ne vrši se automatski. Također, tipovi podataka char i Boolean nisu međusobno kompatibilni. Pogledajmo primjer.
WideningTypeCastingExample.java
public class WideningTypeCastingExample { public static void main(String[] args) { int x = 7; //automatically converts the integer type into long type long y = x; //automatically converts the long type into float type float z = y; System.out.println('Before conversion, int value '+x); System.out.println('After conversion, long value '+y); System.out.println('After conversion, float value '+z); } }
Izlaz
Before conversion, the value is: 7 After conversion, the long value is: 7 After conversion, the float value is: 7.0
U gornjem primjeru uzeli smo varijablu x i pretvorili je u dugi tip. Nakon toga se dugi tip pretvara u float tip.
25 c do k
Lijevanje tipa sužavanja
Poziva se pretvaranje višeg tipa podataka u niži sužavanje lijevanje tipa. Također je poznat kao eksplicitna konverzija ili bacajući se . Programator to radi ručno. Ako ne izvršimo kasting, prevodilac prijavljuje pogrešku tijekom kompajliranja.
double -> float -> long -> int -> char -> short -> byte
Pogledajmo primjer lijevanja tipa sužavanja.
U sljedećem primjeru izveli smo dva puta odljev tipa suženja. Prvo smo tip double pretvorili u dugi tip podataka nakon što se taj dugi tip podataka pretvori u int tip.
NarrowingTypeCastingExample.java
gumb u sredini css
public class NarrowingTypeCastingExample { public static void main(String args[]) { double d = 166.66; //converting double data type into long data type long l = (long)d; //converting long data type into int data type int i = (int)l; System.out.println('Before conversion: '+d); //fractional part lost System.out.println('After conversion into long type: '+l); //fractional part lost System.out.println('After conversion into int type: '+i); } }
Izlaz
Before conversion: 166.66 After conversion into long type: 166 After conversion into int type: 166