Operador instanceof


lunes, 4 de diciembre de 2023

El operador instanceof en Java se utiliza para verificar si un objeto es una instancia de una clase, subclase o implementa una interfaz específica.

La estructura de la sintaxis es la siguiente:

objeto instanceof Tipo

El operador evalúa si el objeto es una instancia de la clase o interfaz especificada y devuelve true si es el caso, y false en caso contrario.

Ejemplo de uso:

Object obj = new Estudiante();
if (obj instanceof Estudiante) {
    // ...
}

Si el objeto es null, la expresión objeto instanceof Tipo siempre devuelve false.

if (objetoNulo instanceof CualquierClase) {
    // Esto nunca se ejecutará porque objetoNulo es null
}

Para probar el uso del operador en una subclase, por ejemplo, en una clase Perro que herede de una clase de nivel superior Animal podemos ejecutar el siguiente código:

// Definición de la clase padre
class Animal {
    public void hacerSonido() {
        System.out.println("Sonido de animal");
    }
}

// Definición de la clase hija que hereda de Animal
class Perro extends Animal {
    public void hacerSonido() {
        System.out.println("Guau guau");
    }

    public void perseguirCola() {
        System.out.println("Persiguiendo la cola");
    }
}

public class PruebaInstanceOf {
    public static void main(String[] args) {
        // Crear una instancia de la clase Perro
        Animal miMascota = new Perro();

        // Verificar si la instancia es de la clase Animal
        if (miMascota instanceof Animal) {
            System.out.println("Es un animal");
        }

        // Verificar si la instancia es de la clase Perro
        if (miMascota instanceof Perro) {
            System.out.println("Es un perro");
            // Puedes hacer un casting seguro
            Perro miPerro = (Perro) miMascota;
            miPerro.hacerSonido(); // Esto imprimirá "Guau guau"
            miPerro.perseguirCola(); // Esto imprimirá "Persiguiendo la cola"
        } else {
            System.out.println("No es un perro");
        }
    }
}

En este ejemplo, la clase Perro es una subclase de la clase Animal. La instancia miMascota es de tipo Animal, pero como se creó como una instancia de Perro, el operador instanceof permite comprobar si es una instancia específica de la clase Perro. Además se puede realizar una conversión segura del objeto después de verificar con instanceof.

Compártelo

Compártelo en tus redes sociales y desafía a tus amigos a resolver problemas de programación. Juntos, podemos aprender y crecer.

Copiado

El codigo se ha copiado correctamente en el portapapeles.

Más Ejercicios

Continua mejorando tus habilidades de programación en Java con nuestra selección de ejercicios prácticos de la lección. ¡Haz clic en Practicar y desafía tus conocimientos!

1

Clases y objetos

Explora los fundamentos de la programación orientada a objetos en Java. Aprende sobre clases y objetos, los componentes esenciales que dan vida a la modularidad y reutilización del código en este lenguaje de programación versátil.

2

Atributos y métodos

Explora la esencia de la programación orientada a objetos en Java al comprender a fondo los atributos y métodos. Descubre cómo estos elementos fundamentales son cruciales para la creación de clases y objetos, proporcionando modularidad y eficiencia en el desarrollo de software.

3

Constructores

Descubre la importancia de los constructores en Java y cómo inicializan objetos de manera crucial. Aprende las mejores prácticas para garantizar la coherencia en la creación de instancias y optimiza tu código con nuestros ejemplos detallados.

4

Modificadores de acceso

En Java los modificadores de acceso son fundamentales para controlar la visibilidad y el alcance de los atributos y métodos dentro de una clase. 

5

Getters y Setters

Aprende a crear interfaces seguras con métodos getters y setters en Java. Descubre cómo estos métodos favorecen la encapsulación y proporcionan un control preciso sobre la modificación de atributos.

6

Clase Persona y método ToString()

Crea un programa en Java que solicite tres nombres de personas al usuario y los almacene en un array de objetos de tipo Persona.

7

Constructores y destructores

Crea un programa en Java que solicite tres nombres de personas al usuario y los almacene en un array de objetos de tipo Persona.

8

Operador instanceof

El operador instanceof en Java se utiliza para verificar si un objeto es una instancia de una clase, subclase o implementa una interfaz específica.

9

Clases anidadas e internas

Las clases anidadas e internas en Java están definidas dentro de otra clase y tienen acceso a los miembros de la clase contenedora, incluyendo los miembros privados.

10

Clase persona, estudiante y profesor

Cree un nuevo proyecto en Java con tres clases más otra clase para probar la lógica del código. Las clases principales del programa son las siguientes clases.

11

Clase álbum de fotos

Cree un programa en Java para gestionar un álbum de fotos utilizando la programación orientada a objetos.

12

Creación de Clases y Objetos

Crear una clase llamada "Persona" con atributos como nombre, edad y dirección. Luego, crear objetos de la clase "Persona" e inicializar sus atributos. Implementar métodos para mostrar y modificar estos atributos.

13

Herencia

La herencia en Java es uno de los pilares fundamentales de la programación orientada a objetos (POO). Proporciona un mecanismo mediante el cual una clase puede heredar propiedades y comportamientos de otra clase.

14

Clases abstractas

Una clase abstracta es una clase que no puede ser instanciada directamente. Esto significa que no puedes crear objetos directamente a partir de una clase abstracta mediante el operador new.

15

Herencia de objetos

Crea un programa en Java que solicite tres nombres de personas al usuario y los almacene en un array de objetos de tipo Persona.

16

Formas - Diagrama de clases

Cree un programa en Java que represente el siguiente diagrama de clases UML.

17

Interfaces

Crea un programa en Java que implemente una interfaz IVehiculo con dos métodos, uno para Conducir de tipo void y otro para Repostar de tipo bool que tenga un parámetro de tipo entero con la cantidad de gasolina a repostar.

18

Clases abstractas

Crea un programa en Java que implemente una clase abstracta Animal que tenga una propiedad Nombre de tipo texto y tres métodos SetNombre(string nombre), GetNombre y Comer.

Programación orientada a objetos

Practica ejercicios en Java de programación orientada a objetos. Aprende a usar constructores, destructores, la herencia, las interfaces entre otros.

Conceptos fundamentales
Ejercicios prácticos

Seguir aprendiendo

Curso de Programación en C#

Curso de programación gratuito con ejercicios y soluciones prácticas en C#. ¡Comienza a aprender ahora mismo!

Exercises C# App

Lleva tus lecciones de Exercises C# a todas partes con nuestra aplicación para Android. Descárgala ahora desde Google Play.