Casting en Java

Hola a todos, hoy os explicare como utilizar los castings en Java. Un casting es una operación especial que nos permite realizar una conversión entre tipos, es algo que hemos comentado en varios posts, que algunos tipos no son compatibles entre sí como int y double.

Vamos a ver un ejemplo, para comenzar a entenderlos:

public class PruebaApp {

	public static void main(String[] args) {

		int a=1;

		double b=2.5;

		b=a;

		System.out.println(b);
	}
}

El código anterior, no nos dará ningún error, ya que double si puede contener un int, pero si cambiamos la linea b=a; por a=b; nos informara un error, esto es porque int no puede contener un double, pero si usamos un casting si nos dejara ejecutar.

public class PruebaApp {

	public static void main(String[] args) {

		int a=1;

		double b=2.5;

		a=(int)b;

		System.out.println(a);
	}
}

Como vemos, un casting se indica entre paréntesis con el tipo de dato al que queremos pasar, en este caso int. La variable a, contendrá un 2 y no un 2.5.

El error relacionado con los castings es Type mismatch: cannot convert from (dato1) to (dato2)

No se puede hacer castings entre todos los tipos, por ejemplo, entre un int y un String. El error que aparece es este Cannot cast from (dato1) to (dato2).

Vamos a ver otro ejemplo muy común para usar un casting. Si recuerdas dijimos en otro post, que int y char son compatibles, si tenemos un int y hacemos un casting a char este se convertirá en un carácter asociado de la tabla ASCII. Veamos un ejemplo:

public class PruebaApp {

	public static void main(String[] args) {

		int codigo=97;

		char codigoASCII=(char)codigo;

		System.out.println(codigoASCII);
	}
}

Espero que os sea de ayuda. Si teneis duda, preguntad. Estamos para ayudarte

Compartir

4 comentarios

  1. juanjo

    mUY BUENO AMIGO, ME SACO DE MUCHAS DUDAS

  2. bruno

    muchas gracias! con tu ejemplo tan simple lo he entendido perfectamente. saludos!

  3. Brayan

    ¿int y char son compatibles? es mas bien al revés ¿no?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *