Ajuda Metodo equals! [RESOLVIDO]

7 respostas
L

Boa tarde galera,

Minha duvida está na linha 13:

por que está declarado como final, e por que Empregado está entre parênteses

public abstract class Empregado {
    private String ctps;
    private String primeiroNome;
    private String ultimoNome;

 public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (this.getClass() != obj.getClass()) {
            return false;
        }
        final Empregado other = (Empregado) obj; 
        if ((this.ctps == null) ? (other.ctps != null) : !this.ctps.equals(other.ctps)) {
            return false;
        }
        if ((this.primeiroNome == null) ? (other.primeiroNome != null) : !this.primeiroNome.equals(other.primeiroNome)) {
            return false;
        }
        if ((this.ultimoNome == null) ? (other.ultimoNome != null) : !this.ultimoNome.equals(other.ultimoNome)) {
            return false;
        }
        return true;
    }

7 Respostas

S
leobraga:
Boa tarde galera,

Minha duvida está na linha 13:

por que está declarado como final, e por que Empregado está entre parênteses

public abstract class Empregado {
    private String ctps;
    private String primeiroNome;
    private String ultimoNome;

 public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (this.getClass() != obj.getClass()) {
            return false;
        }
        final Empregado other = (Empregado) obj; 
        if ((this.ctps == null) ? (other.ctps != null) : !this.ctps.equals(other.ctps)) {
            return false;
        }
        if ((this.primeiroNome == null) ? (other.primeiroNome != null) : !this.primeiroNome.equals(other.primeiroNome)) {
            return false;
        }
        if ((this.ultimoNome == null) ? (other.ultimoNome != null) : !this.ultimoNome.equals(other.ultimoNome)) {
            return false;
        }
        return true;
    }

A palavra final nesse caso indica que a variavel é uma constante (ou seja, SEMPRE irá apontar para o mesmo objeto) e Empregado em parenteses significa que está tentanto fazer um casting.

jeffev

Casting é a conversão.
Está convertendo um obj para a classe empregados. deve se cuidar muito a fazer isso, pois pode ocorrer erro em tempo de execução.

Caso não tenha mais dúvidas favor colocar resolvido no assunto do tópico.

L

Sem_Nome:

A palavra final nesse caso indica que a variavel é uma constante (ou seja, SEMPRE irá apontar para o mesmo objeto) e Empregado em parenteses significa que está tentanto fazer um casting.

Então dexa eu ver se intendi:

quer dizer que está fazendo um casting da variavel “obj”, para depois a variavel “other” recebe-la, e ai sim fazer as comparações dos atributos.

é isso?

Obrigado!

S

leobraga:
Sem_Nome:

A palavra final nesse caso indica que a variavel é uma constante (ou seja, SEMPRE irá apontar para o mesmo objeto) e Empregado em parenteses significa que está tentanto fazer um casting.

Então dexa eu ver se intendi:

quer dizer que está fazendo um casting da variavel “obj”, para depois a variavel “other” recebe-la, e ai sim fazer as comparações dos atributos.

é isso?

Obrigado!

Sim.

F

Pensa assim, o pai MASTER SUPREMO das classes é Object certo?
Portanto toda e qualquer classe é um Object.

Você passa um parâmetro do tipo Empregado (que é um Object) e então faz o cast para ter acesso aos métodos do tipo Empregado.

L

Obrigado gente,
desfez um nó legal aque na minha cabeça.

jeffev

De nada!
Qualquer coisa só avisar!

Criado 23 de agosto de 2012
Ultima resposta 23 de ago. de 2012
Respostas 7
Participantes 4