Type Castin

Páginas: 9 (2016 palabras) Publicado: 13 de julio de 2012
Conversiones de Tipo Casting.
También conocido como conversión de tipo. Java es un lenguaje fuertemente tipeado, de modo que cada variable y cada valor del programa se definen como poseedores de un tipo de dato en particular.

Java efectúa en forma automática algunas conversiones de tipo, y permite obligar algunas otras conversiones de tipo. Por lo tanto tenemos dos clases de conversiones detipo: la promoción (conversión de tipo automática) y el casting (conversión forzada).

La promoción ocurre cuando hay un intento de usar un tipo de dato más pequeño en donde existe otro tipo de dato más grande.

Ejemplo.

Considera el siguiente código de una conversión automática:
/**
* Ilustra el proceso de conversión automático (promoción).*/
public class Impuesto
{
public static void main( String[] args )
{
int precio = 20;
float impuesto = 0.15f;

double total = precio * impuesto;

System.out.println( total );} //fin del método main
} //fin de la clase Impuesto

En la declaración, la variable precio el valor 20 está representado en un formato de 32 bits y el valor de la variable impuesto en un formato de 32 bits con el punto flotante. Ahora, cuando en una expresión aritmética intervienen diferentes tipos la JVM hace una conversión automática y realiza los cálculos conel tipo de mayor precisión. En este caso la operación precio * impuesto implica que el valor de precio será traducido a un nuevo formato de 32 bits con punto flotante. Finalmente al hacer la asignación del resultado a una variable de tipo double nuevamente la JVM realiza una promoción de ese valor a otro formato de 64 bits con punto flotante.

En la siguiente figura las flechas sólidas ilustrancuando Java realizará una promoción. Las fechas con puntos muestran conversiones en las que puede haber pérdida de información y en consecuencia se necesita utilizar una conversión forzada (casting).

El casting sucede cuando Java no sabe cómo tratar algún tipo de dato porque puede que un el número a convertir esté fuera del rango del tipo a que se quiere convertir. Entonces obliga alprogramador a realizar esa conversión forzada (explicita). La sintaxis para realizar un cast es:

Como se muestra en la figura, para realizar un cast necesitamos de un tipo de dato dentro de un paréntesis. Se debe colocar un operador de conversión a la izquierda del valor que se desea convertir.  El siguiente diagrama ilustra una conversión por casting.

Conversiones implícitas
El rango de un tiponumérico es el intervalo de valores que se pueden almacenar en variables de ese tipo.
Tipo | Bits | Rango |
int | 32 | -2**31 .. 2**31-1 |
short | 16 | -2**15 .. 2**15-1 |
byte | 8 | -2**7 .. 2**7-1 |
long | 64 | -2**63 .. 2**63-1 |
float | 32 | ~ -10**32 .. 10**32 |
double | 64 | ~ -10**300 .. 10**300 |
Java no reclama cuando se convierte de un tipo de rango menor auno de mayor rango.
* Obs: byte < short < int < long < float < double
*
* int i= 1;
* long l= i; // Ok
*
* l= 1000000000000;
* float f= l; // Ok.

Java no acepta conversiones de tipos de menor rango atipos de mayor rango.
* double d= 1.0e24;
* int i= d; // Error durante la compilación
*
* float f= 1.0f;
* int i= f; // Error durante la compilación
*
* short s= i; // Error durante la compilación

Java sí acepta cualquier...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Math Type
  • Your Type
  • Type Selection
  • Conditional sentences, type i, type ii
  • Type inference with constraints
  • Conditional sentences type 1
  • Type
  • Dumb Type OR

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS