Metodos sobrecarregados

6 respostas
M

Estava lendo um livro de java, e lembrei dos métodos sobrecarregados. E achei interessante. Em programas em geral, eles são muito utilizados?Alguém tem algum exemplo ou idéias de como eles podem facilitar na hora programação?

6 Respostas

D

Os métodos sobrecarregados são usados quando se desenvolve uma aplicação. Eles facilitam a vida do programador pois o mesmo passa os os diferentes paramentros para o metodo e ele responde conforme o parametro passado.

Por exemplo você poderia ter uma classe que gera um log de valores primitivos e Wrapper. Define um metodo gravar( parametros) e para cada tipo primitivo ou Wrapper que desejar logar você define um método gravar(parametro) recebendo o novo parametro.

Para uma leitura complementar leia sobre pattern Strategy.

_fs
class EnviadorDeEmails {
    public void envia( String usuario, String senha ) {
        envia( usuario, senha, usuario );
    }

    public void envia( String usuario, String senha, String nomeParaAparecer ) {
        // faz o serviço
    }
}

Nesse caso o sobrecarregamento (!) foi utilizado para dar conveniência ao usuário da classe. Não é necessário passar um nomeParaAparecer se ele não quiser, e o valor default (o próprio email) é utilizado.

T

Só tomar um pouco de cuidado com métodos sobrecarregados. Se quiser deixar a equipe de manutenção doida (ou você mesmo :wink: ), escreva um monte de métodos sobrecarregados cuja funcionalidade é completamente diferente para cada tipo de argumentos.

Por exemplo:

double get (int x) {
    return -2220;
}
char get (double y) {
    return '\uCAFE';
}
long get (float z) {
     return 0xCAFEBABEL;
}
float get (long w) {
     return 2.0f;
}
int get (char v) {
    return '\u1234';
}

Agora pegue esta linha e diga o que ela vai retornar:

System.out.println (c.get (abc));

Tal código é bom para ter numa prova de certificação, mas não no seu projeto.

A idéia é que métodos sobrecarregados não provoquem surpresas para quem está chamando.

Fabricio_Cozer_Marti

thingol:
Só tomar um pouco de cuidado com métodos sobrecarregados. Se quiser deixar a equipe de manutenção doida (ou você mesmo :wink: ), escreva um monte de métodos sobrecarregados cuja funcionalidade é completamente diferente para cada tipo de argumentos.

Por exemplo:

double get (int x) {
    return -2220;
}
char get (double y) {
    return '\uCAFE';
}
long get (float z) {
     return 0xCAFEBABEL;
}
float get (long w) {
     return 2.0f;
}
int get (char v) {
    return '\u1234';
}

Agora pegue esta linha e diga o que ela vai retornar:

System.out.println (c.get (abc));

Tal código é bom para ter numa prova de certificação, mas não no seu projeto.

A idéia é que métodos sobrecarregados não provoquem surpresas para quem está chamando.

o thingol ta querendo te endoidar … hehehhe… esse tipo de coisa vc soh vê em questoes pra prova de programador de java da sun.

Em projetos mesmo, nao deve ter esse tipo de confusao nao.

Em geral utilize sobrecarga pra facilitar sua vida, mas lembre-se:
‘Com moderacao.’

pcalcado

Atenção: sobrecarga != sobrescrita.

Strategy é utilizado com sobrescrita :wink:

M

Valeu pessoal! Deu pra ter uma noção melhor sobre assunto!!

Criado 16 de agosto de 2005
Ultima resposta 16 de ago. de 2005
Respostas 6
Participantes 6