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?
Metodos sobrecarregados
6 Respostas
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.
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.
Só tomar um pouco de cuidado com métodos sobrecarregados. Se quiser deixar a equipe de manutenção doida (ou você mesmo
), 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.
Só tomar um pouco de cuidado com métodos sobrecarregados. Se quiser deixar a equipe de manutenção doida (ou você mesmo), 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.’
Atenção: sobrecarga != sobrescrita.
Strategy é utilizado com sobrescrita 
Valeu pessoal! Deu pra ter uma noção melhor sobre assunto!!