BlogBlogs.Com.Br

quarta-feira, 1 de abril de 2009

Java : Casting Objects


O Cast serve para determinar qual o tipo do objeto está sendo usado.
Consideramos as seguintes classes JogoDeTabuleiro e Xadrez. A classe Xadrez é filha da Classe JogoDeTabuleiro.

Se for declarado:
public Xadrez meuJogo = new Xadrez ();
O meuJogo é um jogo de Xadrez. Sendo Xadrez uma classe descendente de JogoDeTabuleiro e também da classe Object, o meuJogo é também um JogoDeTabuleiro e um Object.
A afirmativa contrária não é verdadeira. Um JogoDeTabuleiro não é necessariamente um jogo de Xadrez. Da mesma forma um Object pode ser um JogoDeTabuleiro ou um jogo de Xadrez.
Veja o código abaixo:
Object obj = new Xadrez();
obj é um Object e um jogo de Xadrez. Cast implícito
Xadrez meuJogo = (Xadrez)obj;
O cast assegura que obj do tipo Xadrez seja passado ao meuJogo que só é do tipo meuJogo. Cast explicito.
Uma outa maneira de prevenir erros está no teste lógico:
if (obj instanceof Xadrez) {
Xadrez meuJogo = (Xadrez)obj;
}

0 comentários: