Duvida com instance of

6 respostas
Francisco_Miguel

Galera, surgiu uma duvida, estava lendo alguns topicos do forum, e quero saber uma coisa, em qual situaçao preciso saber qual a instancia de um objeto???

6 Respostas

T

bom, há várias situações…por exemplo se vc tem as classes:

Pessoa (pai), PessoaFisica(filha), PessoaJuridica(filha), ae em determinado momento você recebe um objeto pessoa mas não sabe se é física ou jurídica. COm o instance of vc descobre qual o tipo desse objeto…

abelgomes

fora o exemplo do Thiago existem varios padroes de projeto que precisam saber o tipo do objeto :wink:

Francisco_Miguel

hummm … blzaaa galeraaa deu para pegarrr a ideia da coisaaaa!!! valewwww

thiagolopes

Interessante este tópico: Era justamente uma das minhas dúvidas… Será que você poderia colocar um exemplo? Estava lendo que para colocar no padrão fachada é necessário usar o instance of, mas para ser sincero não sei utiliza-lo. :frowning:

betoslayer

thiagolopes:
Interessante este tópico: Era justamente uma das minhas dúvidas… Será que você poderia colocar um exemplo? Estava lendo que para colocar no padrão fachada é necessário usar o instance of, mas para ser sincero não sei utiliza-lo. :frowning:

Geralmente se usa instance of toda quando utilizamos polimorfismo, ou colecoes que nao usam genéricos, se utiliza muito tambem quando se implementa o metodo equals.

Exemplo 1: colecoes

ArrayList lista= new ArrayList();
lista.add(new Dog());
lista.add(new Cat());
lista.add(new String("adf"));

Object objeto=lista.get(1);
//aí vc quer saber o q é esse objeto para tratar ele corretamente e nao fazer nenhuma merda
if (objeto instance of Dog) { System.out.print("é um cachorro"); Dog novo= (Dog) objeto //ja sabe que nao vai dar um ClassCastException
else if(objeto instance of Cat) System.out.print("gato");

Exemplo 2: equals

public boolean equals(Object objeto){
   if ((objeto instance of Cat)&& (this.toString().equals(objeto.toString())) return true; //sao equivalentes
else return false;
}

Exemplo 3: polimorfismo

public class Pessoa{}
...
public class Homem extends Pessoa{}
...
public class Mulher extends Pessoa{}
...
public class Menino extends Homem{}
...
...
Pessoa[] pessoas= new Pessoa[4];
pessoas[0]=new Homem();
pessoas[1]=new Mulher();
pessoas[2]= new Menino();
//o resto vc ja sabe
if (pessoa[0] instance of Mulher) ;//eh mulher
thiagolopes

Opa… vlw pela ajuda amigo, irei estuda mais esta parte de polimorfismo e istance of visto que sempre tive um pouco de dificuldade para entender esta parte.Abraços meu velho!!!

Criado 9 de dezembro de 2008
Ultima resposta 9 de dez. de 2008
Respostas 6
Participantes 5