Introduksjon til Type Conversion i Java

Når så vel variabler som, konstanter av forskjellige typer blir satt sammen i et uttrykk, kan de endres til en lignende type. Denne teknikken for å transformere en enkelt forhåndsdefinert type til en annen er kjent som typen konvertering i Java.

Skriv konvertering

Det er to forskjellige typer konvertering som vi bruker i programmeringsspråk.

1. Implisitt type konvertering

Hvis typekonvertering utføres øyeblikkelig gjennom kompilatoren uten å ha programmererens medvirkning, er typekonvertering kjent som implisitt typekonvertering. Kompilatoren oppfordrer grunnleggende hver operand mot datatypen til den største operanden. Ingen tap av data oppstår under hele datakonverteringen. Ingen sjanse til å kaste unntak gjennom konverteringen og er derfor kjent som typesikker. Konvertering av mindre størrelse for mye større antall kan være implisitt konvertering. Transformasjon av heltallsdata som skal flytes.

float i=0;
int j=10;
i=j;

// Dette kan være implisitt transformasjon siden flottøren kan være større enn et helt tall, derfor mangler data og heller ikke noe unntak.

2. Eksplisitt type konvertering

Typekonvertering som kan håndheves gjennom programmereren er kjent som eksplisitt typekonvertering. fundamentalt sett gir programmereren et uttrykk for å bli av en bestemt type. Eksplisitt type transformasjon kan kalles typecasting. Tap av data vil kanskje ikke oppstå under datakonvertering. Derfor er det sannsynlighet for tap av detaljer. det kan kaste en feil hvis den kanskje forsøkte å utføre uten typekasting. Transformasjon av et større antall til mindre tall kan være eksplisitt konvertering.

float k=123.456
int i= (int) k

// dette kan være eksplisitt konvertering så vel som, (int) er typecast, operator. På dette tidspunktet kan vi klare å unnslippe et unntak, men du kan finne det synlige tapet av data. dvs. i = 123

// .456 kan slippes i konverteringsprosessen

Skriv konvertering i Java

Som andre programmeringsspråk er det to typer konvertering i java:

Implisitt type konvertering

  • Dette er vanligvis det vi kaller Bredere konvertering, og disse kan gjøres automatisk fordi vi flytter til en bredere datatype. Så hvis vi har et 32-bits heltall og vi vil flytte til et 64-bits heltall, er det bredere. Så verdien kan trygt flyttes slik at de kan gjøres underforstått. Og kompilatoren må ta en beslutning om hvordan disse konverteringene skal gjøres, og reglene er ganske enkle.
  • Hvis vi har et uttrykk med flere (Blandede) heltallstørrelser i det, hvis vi har korte og lange, er uansett den største heltalstørrelsen hva tingene vil konvertere det til. Så hvis vi gjør en operasjon med en kort og en lang, vil den korte implisitt bli kastet med.
  • Hvis vi utfører en operasjon med blandede flytepunktstørrelser, så vi har en flottør og en dobbel, vil de alltid gå til doble fordi dobbelt er den største flytepunktstørrelsen.
  • Og hvis vi har en operasjon som bruker blandede heltallstyper og flytende punkttyper, vil kompilatoren kaste til det største flytende punktet i ligningen. Så hvis vi gjør en operasjon med en lang og flytende, vil den bli kastet til flytende.
  • Hvis vi gjør en operasjon med en lang og en dobbel, blir den lange kastet til en dobbel.

Eksplisitt type konvertering

  • Vi utfører eksplisitt i koden vår når vi bruker denne cast-operasjonen. Når vi gjør det, tar vi ansvar for hva som skjer som et resultat av den typen konvertering. På grunn av det kan vi utføre både utvidet konvertering og smal. Så utvide å gå fra en 32-bit for å si 64-bit, begrense, gå fra en 64-bit ned til en 32-bit. Vi skulle bare ønske å være klar over at vi vet hva som potensielt kan skje.
  • Hvis vi gjør en eksplisitt rollebesetning fra et flytende punkt til et helt tall, så flytende punkter kan ha en brøkdel, kan ikke heltall, så noe brøkdel vil bli droppet når vi kaster det flyter ned til et helt tall.
  • Du vil være forsiktig når du utfører en innsnevrende konvertering. Hvis vi har et 64-bits heltall, har det muligheten til å holde verdier som er for store til å passe inn i et 32-bits heltall.
  • Så hvis vi sender den 64 biten til en 32-bit, vil programmet faktisk gjøre det, men hvis verdien er for stor til å passe inn i en 32-bit, vil du få noen rare resultater av det. Så du vil være sikker på at når du støper den ved å gjøre en innsnevring av rollebesetningen at du vet at det du gjør er trygt.
  • Og den siste er bare at du vil være forsiktig når du konverterer fra et helt tall til et flytende punkt, fordi hvis du har et heltall med et stort antall betydelige sifre, på grunn av måten flytpunktet er lagret på, kan du miste noe av de betydelige sifrene.

Eksempler på typekonvertering

Eksempler på typekonvertering nevnt nedenfor i detalj:

Kode:

Vi har et enkelt program her, noen erklæringer øverst, flyter, dobbelt, byte, kort og lang, og variablene er hver navngitt for å hjelpe deg med å identifisere hvordan deres typer er som float er floatVal,

Kode:

lang er langVal

Kode:

Og programmet skriver bare ut en suksessmelding hvis den kjører.

Så la oss bare se hvordan noen av typen konvertering kommer inn i bildet her. Så la oss først og fremst la oss bare gå videre og lage en variabel. Vi har kort, og vi vil bare kalle det resultatet.

La oss faktisk kalle det resultat1. Og la oss bare gjøre en enkel oppgave. Og så først vil vi bare tilordne byteVal til den. Nå som vi forventer, hvis vi går foran og kjører dette, så løp vellykket.

Kode:

Produksjon:

Vi vet at det er en gyldig oppgave fordi en byte kan tilordnes til en kort fordi det er en utvidet konvertering.

Hvis vi tar denne byteVal skjønt, og vi gjør det til en longVal i stedet, så nå er det faktisk en lang, hvis vi kjører dette, får vi en feilmelding her som sier inkompatibel type, mulig tap av konvertering fra lang til kort.

Kode:

Så det vi kan gjøre her da er at vi kan gjøre en eksplisitt rollebesetning. Vi vil bare sette kort foran dette. Så nå er det gyldig slik at vi kan kjøre det.

Kode:

Og det fungerer selvfølgelig. Fordi det lange ikke kunne gå på kort fordi det var en innsnevrende konvertering.

Produksjon:

Men ved å sette eksplisitt rollebesetning foran det, nå er det gyldig. Hvis vi vil, kan vi stille en rollebesetning til å være veldig eksplisitt og si at du vet, vi vet at selv om en byte-konvertering er lovlig, vil vi eksplisitt vise at vi støper den ved å sette kort rollebesetning der inne, vi kan gjøre det, og det er helt lovlig.

Kode:

Produksjon:

Så la oss se på et annet scenario. Vi kommer til å lage en annen variabel vi vil kalle result2 , og result2 er også en kort. Og det vi ønsker å gjøre her er at vi bare tar byteVal, og vi vil trekke fra longVal. Nå vet vi at det ikke er lovlig fordi resultatet av uttrykket kommer til å være på størrelse med det største heltallet i det, som er lengden.

Kode:

Så hvis vi kjører dette, får vi en feil med å si at det ikke er gyldig å konvertere en lang til en kort.

Men la oss si at vi vil gå foran og holde resultatet som kort. Vi må gjøre en rollebesetning. Men vi ønsker å støpe denne gangen er verdien av hele resultatet her. Så hva vi skal gjøre, setter kort rollebesetning foran den her.

Sett den korte rollebesetningen foran den her. Og pakk hele saken i parentes. Og kjør den.

Kode:

Det vil kjøre vellykket.

Produksjon:

Nå erklærer du en annen variabel som heter result3, men erklærer denne som en lang. Så fikk resultat 3, og hva vil vi gjøre her er at vi vil tilordne at longVal - floatVal. Så vi kjører det, feilen går tapt konvertering konvertering fra flyter til lang fordi hver gang vi har en heltall type og en hvilken som helst flytende punkt type, vil resultatet bli flytende punkt type.

Kode:

Så la oss gå videre og konvertere resultatet nå til en flottør. Så ved å gjøre det til en flottør, bør vi kunne gå foran og kjøre det. Og løp med hell.

Kode:

Produksjon:

Men nå, hvis vi tar floatVal her og vi konverterer dette til å være et doubleVal, og hvis vi prøver å kjøre dette, får vi feilen fordi den sier at resultatet kommer til å bli en dobbel fordi når du gjør et heltall og et flytende punkt, det er størrelsen på det største flytende punktet i ligningen.

Kode:

Så la oss gå foran og gjøre dette resultatet til et dobbelt så nå kan vi kjøre det.

Kode:

Produksjon:

Konklusjon

1. Variabelen er sterkt skrevet i Java
2. Primitive typer

  • Heltallstyper, flytende punkttyper, røye-type, boolsk type

3. Skriv konvertering

  • Vi må ofte flytte mellom forskjellige typer fordi fordi programmene våre, etter hvert som de får mer kompleksitet, sannsynligvis vil involvere flere datatyper.
  • Kompilatoren kan håndtere typekonverteringer som utvides, og beveger seg fra en type til en annen som kan inneholde større verdier,
  • Men du kan også bruke casting for å utføre eksplisitte typer konverteringer som kompilatoren ikke kan utføre automatisk.

Anbefalte artikler

Dette er en guide til Type Konvertering i Java. Her diskuterer vi introduksjonen, skriv konvertering i java som implisitt og eksplisitt sammen med eksemplene som bruker forskjellige situasjoner. Du kan også se på følgende artikler for å lære mer-

  1. Konstruktør i Java
  2. Sorterer i Java
  3. Konstruktør i Java
  4. JCheckBox i Java
  5. Kast vs kaster | Topp 5 forskjeller du burde vite
  6. Slik implementerer du avkrysningsruten i Bootstrap
  7. Konvertering i Java med eksempler