Objetos em Java

Olá pessoal como vai

Gostaria de saber o que significa esta Instrução?

Object obj = (Object) FindValue(Object);

A Instrução Object obj = (Object) significa um construtor esperando um valor de retorno?

if(true) Como eu faço esse construtor?

Desde Já Obrigado!!!

Vamos do inicio.

Construtor é o que você define na classe.


public class Pessoa{


 private String nome;
 private Date nascimento;

public Pessoa(){  //construtor padrão
}

public Pessoa(String nome){ //Construtor com nome como paramentro
  this.nome=nome;
}

}

Agora para explicar essa instrução:

Object obj = (Object) FindValue(Object);

Digamos que tenha a classe Ator e outra classe chamada Diretor, ambas sendo Pessoas:

 public class Ator extends Pessoa{
  private List<String> papeis;
 }

 public class Diretor extends Pessoa{ }

Agora digamos que você tenha feito uma pesquisa de um Ator em um método que retorna objetos do tipo Pessoa.
Você pode trabalhar apenas com um objeto do tipo Pessoa, mas e se precisar acessar algo que só ator tem, como papeis? Para isso terá que fazer um Cast

[code]Ator ator; //Declarou objeto do tipo Ator

FindValue(“valor”); // Retorna um objeto do tipo Pessoa

Ator ator = (Ator)FindValue(“valor”); //Pesquisa uma pessoa e transforma em um Ator
[/code]

Lógico que isso pode trazer varios problemas. Se vier um Diretor e você tentar fazer o cast para Ator, irá estourar um erro. Para evitar que isso ocorra, deve-se usar o instanceof

Pessoa pessoa = FindValue("valor"); //Pesquisa uma pessoa e passa para um objeto do tipo Pessoa if(pessoa instanceof Ator) // se a pessoa for um Ator, então está ok ator = pessoa;

Resumindo isso tudo:

[code]
public Pessoa(){ //construtor da classe Pessoa
}

Ator ator = (Ator)pessoa; //cast de Pessoa para Ator[/code]