InstanceOf em Java - Trabalho e regras de instanceOf em Java com exemplo

Índice:

Anonim

Introdução ao instanceOf em Java

instanceOf é uma classe de linguagem de programação Java que, quando chamada, retorna valor booleano e é usada para examinar o relacionamento entre o objeto e uma classe / interface. Devido à sua capacidade de comparar esses dois, também é conhecido como "operador de comparação de tipos". Simplesmente, instanceOf é usado para verificar se um objeto é de algum tipo ou não e retorna um valor booleano que é verdadeiro ou falso. InstanceOf é um dos operadores úteis em java, que ajuda na obtenção de informações úteis sobre um objeto, em um ambiente de tempo de execução.

Sintaxe:

A classe instanceOf é usada para verificar se o objeto é de alguma classe ou não.

obj instanceOf object

Acima está a sintaxe padrão para instanceOf class. Aqui, obj é o nome do objeto que deve ter sido criado anteriormente (referência). instanceOf é a palavra-chave e o objeto é a classe ou a interface com a qual combinamos o objeto obj.

Em vários casos, o instanceOf pode ser de grande utilidade, como onde temos uma coleção de objetos e você não tem certeza de qual objeto ele se refere. Um exemplo desse caso pode ser um formulário simples com muitos controles.

Além disso, se usarmos instanceOf com uma variável que possui um valor NULL, é certo que retornará false.

Como instanceOf funciona?

O operador instanceOf em java trabalha em um relacionamento simples é-um. Simplesmente afirmando, é um relacionamento é um conceito orientado a objetos, onde comparamos ou dizemos, trabalha em uma relação entre abstrações, onde a classe A é uma subclasse da classe B. Esse é um relacionamento totalmente baseado em herança. Em outras palavras, é como dizer "X é do tipo Y".

Agora, vamos entender o funcionamento de instanceOf, juntamente com o respectivo código.

Primeiro, criaremos uma classe chamada Parent.

Código:

Class Parent(
)
Then let's add a simple main class.
public static void main(String args()) (
)

Em seguida, criaremos uma instância da nossa classe Parent.

Parent child = new Parent();

Por fim, usaremos o operador instanceOf para verificar o relacionamento entre filho e pai. Que é assim: child instanceOf Parent

Agora, como mencionado anteriormente, a sintaxe para instanceOf vai de um objeto que precisa ser verificado, a palavra-chave instanceOf e a classe / interface com a qual o objeto especificado deve ser testado.

Em qualquer momento em que encontramos a palavra-chave “estende” ou “implementa”, em uma declaração de classe, é um sinal claro de que é um relacionamento sendo usado.

Exemplos de instanceOf em Java

O exemplo a seguir demonstra um uso de linha única de instanceOf.

Class instanceof_java(
public static void main(String args()) (
instanceof_java s = new instanceof_java();
System.out.println(s instanceOf instanceof_java);
)
)

Interpretação de código: iniciada com a criação de uma classe simples instanceof_java. Na classe instanceof_java, temos nossa classe principal e, dentro da classe principal, criamos um objeto. Esse objeto s é do tipo instance__ava. Em seguida, para implementar o trabalho de instanceOf, fornecemos uma instrução de saída com o objeto s. Na última linha, passamos s junto com a instanceof palavra-chave e a classe pai. Após a execução, o código retornará 'true', porque o objeto s é da instância do tipo.

Indo além, se tivermos um objeto de nossa classe ou interface conhecida, mas não atribuímos nenhum valor ao mesmo objeto, ele retornará false, mesmo sendo da mesma classe.

Class instanceof_sample(
public static void main(String args()) (
instanceof_sample new = null;
System.out.println(new instanceOf instanceof_sample);
)
)

Aqui temos código semelhante ao exemplo anterior, mas com objeto de valor nulo. Quando executado, esse código retornará falso. Como podemos ver, o objeto new é a instância de instanceof_sample, mas new está sendo atribuído com um valor nulo, que retorna em false.

Regras por exemploOperador

Com base em se o objeto ref não é nulo e uma instância do tipo referido. Quando X é a classe simples do objeto referido e Y é a classe resolvida ou uma matriz de um tipo de interface.

  • Quando X é uma classe simples, então:
  • Se Y é um tipo de classe, o X deve ser uma subclasse de Y ou X deve a mesma classe que Y.
  • Se Y é um tipo de interface, a classe X deve implementar a interface T.
  • Quando X é tipo interface, então:
  • Se Y é um tipo de classe, então Y deve ser um Objeto.
  • Y pode ser igual à interface que X ou super interface de X se Y for um tipo de interface.
  • Se X é uma classe, que representa o tipo de matriz SC (), que é uma matriz de componentes do tipo SC, então:
  • Se Y é um tipo de classe, Y deve ser um objeto.
  • Se Y é um tipo de interface, Y deve ser do tipo de interface implementado por matrizes.

Por fim, demonstraremos um programa instanceOf para entender que o objeto pai não pode ser uma instância da classe filho.

Programa

class Subject ( )
class Topic extends Subject ( )
class instanceof_java
(
public static void main(String() args)
(
Subject history = new Subject ();
if (history instanceof Topic)
System.out.println("history is instance of Topic");
else
System.out.println("history is NOT instance of Topic");
)
)

Interpretação de código: com o objetivo de entender o operador instanceOf em diferentes cenários, escrevemos o código acima. Criamos uma classe simples Subject e, em seguida, outra classe Topic, que estende a classe Subject, tornando a classe Topic como filho e a classe Subject como Parent aqui. Depois, outra classe com o método principal. Dentro do método principal, criamos uma nova instância da classe pai Subject. No loop IF ELSE, verificamos a condição do objeto de instância com a classe pai Subject. Se a condição fosse atendida, retornaria "histórico é uma instância do Tópico" e "histórico NÃO é uma instância do Tópico" se a condição falhar.

Ao executar o código acima, a saída será "histórico NÃO é uma instância do Tópico", significando que a condição passada em SE falha. Isso aconteceu porque tentamos verificar o pai do objeto "history" com a classe Topic. Sabemos que o tópico da classe estende o assunto da classe, o que significa que o tópico é subclasse para o assunto. E quando tentamos verificar o tipo de histórico com a classe Topic, ele retorna false (NOT). Isso significa que o objeto pai não pode ser uma instância de uma classe.

Resultado:

Conclusão - instanceOf em Java

Aprendemos sobre a classe instanceOf em Java, que simplesmente decide se o objeto é do tipo especificado. Entendemos como o relacionamento é um impacto no operador instanceOf. Também conhecido como operador de comparação, instanceOf é baseado em herança.

Artigos recomendados

Este foi um guia para InstanceOf em Java. Aqui discutimos como o InstanceOf em Java funciona, rege com o código Interpretação. Você também pode consultar os seguintes artigos para saber mais -

  1. Palavras-chave Java
  2. Anotações Java
  3. Cheat Sheet JavaScript
  4. Palavras-chave PHP