Introduzione alla conversione di tipo in Java

Una volta che variabili e costanti di vario tipo saranno riunite all'interno di un'espressione, possono essere cambiate in un tipo simile. Questa tecnica di trasformazione di un singolo tipo predefinito in un altro è nota come conversione di tipo in Java.

Tipo di conversione

Esistono 2 diversi tipi di conversione che stiamo utilizzando nei linguaggi di programmazione.

1. Conversione di tipo implicita

Se la conversione del tipo viene condotta istantaneamente tramite il compilatore senza il coinvolgimento del programmatore, la conversione del tipo è nota come conversione implicita del tipo. Il compilatore incoraggia fondamentalmente ogni operando verso il tipo di dati dell'operando più grande. Nessuna perdita di dati si verifica durante la conversione dei dati. Nessuna possibilità di generare eccezioni attraverso la conversione e quindi è noto come sicuro. La conversione di quantità di dimensioni inferiori a un numero troppo grande può essere una conversione implicita. Trasformazione di dati di tipo intero in float.

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

// Questa può essere una trasformazione implicita poiché float può essere più grande di un numero intero, quindi nessuna mancanza di dati e anche nessuna eccezione.

2. Conversione di tipo esplicita

La conversione del tipo che può essere applicata tramite il programmatore è nota come conversione esplicita del tipo. fondamentalmente, il programmatore fa un'espressione per diventare di un tipo particolare. La trasformazione esplicita del tipo può essere nota come typecasting. La perdita di dati potrebbe verificarsi o meno durante la conversione dei dati. Pertanto esiste una probabilità di perdita di dettagli. potrebbe generare un errore se tentasse di eseguire senza la tipografia. La trasformazione di un numero maggiore in numeri di dimensioni inferiori può essere una conversione esplicita.

float k=123.456
int i= (int) k

// questo può essere la conversione esplicita e, (int) è typecast, operatore. A questo punto, potremmo riuscire a sfuggire a un'eccezione ma è possibile trovare la perdita visibile di dati. cioè i = 123

// .456 può essere eliminato nel processo di conversione

Digita conversione in Java

Come altri linguaggi di programmazione, ci sono 2 tipi di conversione in Java:

Conversione di tipo implicita

  • Questi sono generalmente ciò che chiamiamo ampliamento della conversione e possono essere eseguiti automaticamente perché stiamo passando a tipi di dati più ampi. Quindi se abbiamo un numero intero a 32 bit e vogliamo passare a un numero intero a 64 bit, è più ampio. Quindi il valore può essere spostato in modo sicuro in modo da poterlo fare implicitamente. E il compilatore deve prendere una decisione su come effettuare queste conversioni e le regole sono piuttosto semplici.
  • Se abbiamo un'espressione con più dimensioni intere (miste) al suo interno, se abbiamo una lunghezza corta e una lunga, qualunque sia la dimensione intera più grande in cui le cose la convertiranno. Quindi se eseguiamo un'operazione con un corto e un lungo, il corto verrà implicitamente proiettato in avanti.
  • Se eseguiamo un'operazione con dimensioni in virgola mobile miste, quindi abbiamo un float e un double, andranno sempre al double perché double è la dimensione in virgola mobile più grande.
  • E quindi se abbiamo un'operazione che utilizza tipi interi misti e tipi a virgola mobile, il compilatore eseguirà il cast su qualunque sia il più grande punto mobile nell'equazione. Quindi, se eseguiamo un'operazione con un long e a galla, il long verrà lanciato a galla.
  • Se eseguiamo un'operazione con una lunga e una doppia, la lunga verrà quindi lanciata su una doppia.

Conversione di tipo esplicita

  • Eseguiamo esplicitamente il nostro codice quando utilizziamo questa operazione di cast. Quando lo facciamo, ci assumiamo la responsabilità di qualsiasi cosa accada a seguito di quel tipo di conversione. Per questo motivo, siamo in grado di eseguire sia conversioni allargate che ristrette. Quindi l'ampliamento passa da un 32 bit a 64 bit, un restringimento, passando da un 64 bit a un 32 bit. Dovremmo solo essere consapevoli del fatto che sappiamo cosa potrebbe potenzialmente accadere.
  • Se eseguiamo un cast esplicito da un virgola mobile a un numero intero, in modo che i punti fluttuanti possano avere una porzione frazionaria, il numero intero non può, quindi qualsiasi porzione frazionaria verrebbe eliminata quando eseguiamo il cast di quel galleggiante su un numero intero.
  • Vuoi stare attento quando esegui una conversione restringente. Se abbiamo un numero intero a 64 bit, ha la capacità di contenere valori troppo grandi per adattarsi a un numero intero a 32 bit.
  • Quindi, se eseguiamo il cast da 64 bit a 32 bit, il programma lo farà effettivamente, ma se il valore è troppo grande per adattarsi a un 32 bit, otterrai alcuni risultati strani. Quindi vuoi assicurarti che quando lo fai lanciando un cast ristretto sappia che quello che stai facendo è sicuro.
  • E l'ultimo è solo che vuoi stare attento quando converti da un numero intero in un virgola mobile perché se hai un numero intero con un gran numero di cifre significative, a causa del modo in cui viene memorizzato il virgola mobile, potresti perdere alcuni dei quelle cifre significative.

Esempi di conversione di tipo

Esempi di conversione del tipo citati di seguito in dettaglio:

Codice:

Qui abbiamo un semplice programma, alcune dichiarazioni in alto, float, double, byte, short e long, e le variabili sono ciascuna nominate per aiutare a identificare quali sono i loro tipi come float è floatVal,

Codice:

long is longVal

Codice:

E il programma stampa solo un messaggio Success se viene eseguito.

Vediamo quindi come entra in gioco parte della conversione del tipo. Quindi prima di tutto, andiamo avanti e creiamo una variabile. Abbiamo poco e lo chiameremo semplicemente il risultato.

In effetti, andiamo avanti e chiamiamolo risultato1. E facciamo un semplice incarico. E quindi prima assegneremo ad esso solo il byteVal. Ora, come ci aspettiamo, se andiamo avanti ed eseguiamo questo, corri con successo.

Codice:

Produzione:

Sappiamo che è un incarico valido perché un byte può essere assegnato in un corto perché è una conversione allargata.

Se prendiamo questo byteVal, e invece lo trasformiamo in longVal, quindi ora è in realtà un lungo, se lo eseguiamo, riceviamo qui un messaggio di errore che dice tipo incompatibile, possibile perdita di conversione da lungo a corto.

Codice:

Quindi quello che possiamo fare qui è che possiamo fare un cast esplicito. Ci limiteremo a metterlo di fronte a questo. Quindi ora è valido per consentirci di eseguirlo.

Codice:

E ovviamente funziona. Perché il long non poteva andare in short perché quella era una conversione restrittiva.

Produzione:

Ma mettendo il cast esplicito di fronte ad esso, ora è valido. Se vogliamo, possiamo mettere una notazione di cast in modo molto esplicito e dire che lo sai, sappiamo che sebbene una conversione di byte sia legale, vogliamo mostrare esplicitamente che la stiamo lanciando inserendo il cast breve lì dentro, possiamo fare quello, ed è completamente legale.

Codice:

Produzione:

Quindi ora diamo un'occhiata a un altro scenario. Creeremo un'altra variabile che chiameremo risultato2 , e anche risultato2 è breve. E quello che vogliamo fare qui è prendere il nostro byteVal e sottrarre longVal. Ora sappiamo che non è legale perché il risultato dell'espressione sarà la dimensione del numero intero più grande in essa, che è la lunghezza.

Codice:

Quindi, se eseguiamo questo, riceviamo un errore che dice che non è valido per convertire un long in un short.

Ma diciamo che vogliamo andare avanti e mantenere questo risultato breve. Dobbiamo fare un cast. Ma vogliamo lanciare questa volta il valore dell'intero risultato qui. Quindi quello che faremo metterà qui il cast corto.

Metti qui il cast corto. E avvolgi il tutto tra parentesi. Ed eseguilo.

Codice:

Funzionerà correttamente.

Produzione:

Ora dichiara un'altra variabile chiamata result3, ma dichiara questa come una lunga. Quindi abbiamo ottenuto il risultato 3, e quello che faremo qui è che assegneremo il nostro longVal - floatVal. Quindi eseguiamo quello, l'errore si perde conversione convertendo da float a long perché ogni volta che abbiamo un tipo intero e qualsiasi tipo a virgola mobile, il risultato sarà il tipo a virgola mobile.

Codice:

Quindi andiamo avanti e convertiamo il nostro risultato ora in un float. Quindi, trasformandolo in un float, dovremmo essere in grado di andare avanti ed eseguirlo. E corri con successo.

Codice:

Produzione:

Ma ora se prendiamo floatVal qui e lo convertiamo in doubleVal e se proviamo a eseguirlo, otteniamo l'errore perché dice che il risultato sarà un doppio perché quando fai un numero intero e un virgola mobile, è la dimensione del più grande punto mobile nell'equazione.

Codice:

Quindi andiamo avanti e facciamo questo risultato un doppio, quindi ora possiamo eseguirlo.

Codice:

Produzione:

Conclusione

1. Le variabili sono fortemente tipizzate in Java
2. Tipi primitivi

  • Tipi di numeri interi, tipi a virgola mobile, tipo char, tipo booleano

3. Digitare la conversione

  • Spesso dobbiamo spostarci tra tipi diversi perché poiché i nostri programmi, man mano che diventano più complessi, probabilmente coinvolgeranno più tipi di dati.
  • Il compilatore può gestire conversioni di tipo che si stanno allargando, spostandosi da un tipo a un altro che può contenere valori più grandi,
  • Ma puoi anche usare il casting per eseguire esplicitamente quei tipi di conversioni che il compilatore non può eseguire automaticamente.

Articoli consigliati

Questa è una guida alla conversione dei tipi in Java. Qui discutiamo l'introduzione, la conversione dei tipi in java come implicita ed esplicita insieme agli esempi che utilizzano situazioni diverse. Puoi anche consultare i seguenti articoli per saperne di più-

  1. Costruttore in Java
  2. Ordinamento in Java
  3. Costruttore in Java
  4. JCheckBox in Java
  5. Lancio contro Lancio | Le 5 differenze principali che dovresti conoscere
  6. Come implementare la casella di controllo in Bootstrap
  7. Conversione in Java con esempi

Categoria: