Tutorial Java Básico Operador instanceof


La herencia se encuentra en todos lados en Java, en este post se hablará del operador instanceof, este es utilizado sobre referencias y determinará si una referencia apunta a un objeto es de un tipo en especial. Cuando se habla de herencia se habla del operador ES-UN, instanceof será la forma en la que seremos capaces de hacer esta evaluación en java.

Ejemplo


/**
 * @author maagapi
 *
 */
public class InstanceOfExample {
	public static void main(String[] args) {
		String cad = "Hello world !";
		System.out.println(cad instanceof String);
	}
}

Output:

true

Como se puede observar la salida es true, lo cual significa que la referencia cad apunta a un objeto de la clase String, con esto se puede decir que la variable cad ES-UN String.

Operador instanceof en la herencia

El operador instanceof se puede utilizar también para determinar si la referencia es de un super tipo, recordemos que este operador realizará la validación ES-UN

Ejemplo


/**
 * @author maagapi
 *
 */
public class InstanceOfExample {
	public static void main(String[] args) {
		String cad = "Hello world !";
		System.out.println(cad instanceof String);
		System.out.println(cad instanceof Object);
	}
}

Salida:

true
true

Si observamos la salida podremos ver que esta imprime verdadero para ambos casos, lo cual significa que la referencia cad ES-UN String pero también cad ES-UN Object.

Reglas importantes

A continuación se listan algunas de las reglas más importantes al utilizar el operador:

  • instanceof es una palabra reservada, por tanto no se debe utilizar como identificador en las aplicaciones.
  • solo es posible utilizarlo sobre referencias y clases que pertenecen al mismo árbol de herencia, de tal modo que si se trata de hacer lo siguiente resultará en un error de compilación:

/**
 * @author maagapi
 *
 */
public class InstanceOfExample {
	public static void main(String[] args) {
		String cad = "Hello world";
		System.out.println(cad instanceof Integer);
	}
}

Salida:

Incompatible conditional operand types String and Integer
  • Por esto solo es posible utilizar el operador con su clase correspondiente o con alguno de sus super tipos.
  • Si se aplica el operador instanceof a una referencia apuntando a null, sin importar la clase con la que se valide el resultado siempre será false.

Los libros recomendados para este tema son:

Autor: Alejandro Agapito Bautista

Twitter: @raidentrance

Contacto:raidentrance@gmail.com

Anuncios

1 comentario »

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s