Para que exatamente serve a sobrecarga? - Javafree: O f�rum de Java que mais cresce
Deseja participar? Crie sua conta ou efetue seu login	�NDICE | NOT�CIAS | TUTORIAIS | RECENTES | LOGIN | REGISTRE-SE Página Inicial do Fórum > Java B�sico	Para que exatamente serve a sobrecarga?	easy Java Magazine 29
peshit_Posts:1
Publicado em: 06/10/2011 14:27:17
Oi boa tarde (:
Nesse exato momento estou na minha aula de JAVA, e a professora deu uma pergunta para diferenciar polimorfismo de sobrecarga. Mas para isso eu tenho que entender o dois. Ela disse que com a sobrecarga eu uso o mesmo m�todo na mesma classe, e o polimorfismo em classes diferentes. Por�m tive uma certa d�vida na sobrecarga. Essa foi minha explica��o: Sobrecarga � a cria��o de v�rios m�todos com o mesmo nome por�m com argumentos diferentes. Elas variam entre n�meros, posi��es e quantidade. Pode-se criar o mesmo m�todo com o mesmo nome, e a passagem de par�metros ser diferente, como por exemplo:
O m�todo LIGAR possui tr�s atributos, dois do tipo int, e um tipo boolean. O Java l� somente o tipo e n�o o nome do atributo, ent�o n�o se pode criar o m�todo LIGAR duas vezes para passar o mesmo par�metro int. Mas se for um m�todo LIGAR com argumento inteiro, e outro com argumento boolean, a� sim est� correto.
Sei o que a sobrecarga tem como caracter�sticas, mudar a passagem de parametros e manter o mesmo nome do m�todo. Uso ela tamb�m para modificar os valores dos atributos de uma mesma classe. Por�m, PARA QUE � usado isso? Qual a vantagem, finalidade?
Obrigada desde j� quem puder me ajudar ;x
2011-10-07 t�tulo editado por simu
- tudo em letra mai�scula � considerado gritaria...
Publicado em: 06/10/2011 18:24:30
primeiro, isso vai em java b�sico, movendo....
digamos que voc� tem o m�todo somar,
somar pode receber 2 inteiros e retorna uma String descrevendo a soma no formato
" + = "
esse m�todo pode ser descrito assim
public String somar(int a,int b){
return String.format("%d + %d = %d",a,b,(a+b));
MAS e se, voc� quisesse ter tamb�m, um metodo somar que recebesse dois doubles?, no int, voc� n�o iria querer mostrar nenhuma casa decimal, mas com double sim.
Ser n�o houvesse sobrecarga, voc� precisaria usar dois m�todos cm nomes diferentes (por exemplo somarInt e somarDouble ) que fariam a mesma coisa.
deste modo, voc� pode criar m�todos que fa�am a mesma tarefa, com o mesmo nome, mesmo usando argumentos diferentes
public String somar(double a,double b){
return String.format("%.2f + %.2f = %.2f",a,b,(a+b));
quando voc� for usar os m�todos, n�o precisa se preocupar em qual � o nome do m�todo para aquele argumento, j� que s�o todos o mesmo nome
System.out.println(somar(2,5));//inteiro
System.out.println(somar(3.33,5.55));//double
Claro, voc� pode achar que n�o existe necessidade em um caso pequeno como este mas, podia ser pior.
Pense no System.out.println()
que tipo de argumento ele recebe?
Voc� nunca reparou nisso mas, ele pode receber MUITOS tipos de argumento diferentes.
System.out � um PrintStream, ele tem o m�todo println sobrecarregado em...
void	println()
void	println(boolean x)
void	println(char x)
void	println(char[] x)
void	println(double x)
void	println(float x)
void	println(int x)
void	println(long x)
void	println(Object x)
void	println(String x)
imagina ter que lembrar um nome diferente para cada ocasi�o, tudo para fazer a mesma coisa: imprimir.
Com a sobrecarga, fica muito mais simples, voc� nem percebe que existem tantos m�todos, afinal, no fundo, eles fazem a mesma coisa
staroskiPosts:3412
Publicado em: 07/10/2011 08:39:51
Sobrecarga: permite que voce tenha uma mesma opera��o para diferentes tipos de dado e/ou diferentes argumentos.
Implementa-se criando num mesmo tipo de dado, m�todos com o mesmo nome mas parametros diferentes.
Polimorfismo: permite que seus objetos assumam pap�is diferentes.
Implementa-se com heran�a e/ou realiza��o de interfaces._________________Ricardo Artur Staroski, OCP-JP
samirrolembergPosts:23
Publicado em: 07/10/2011 09:46:10
isso � mais facil de entender com o contrutor!
voc� pode ter o contrutor padr�o da sua classe.
public MinhaClasse(){
que apenas chama o super.
e como pode ter um contrutor que reba um ou mais dados por parametro.
public MinhaClasse(int x){
samirrolembergisso � mais facil de entender com o contrutor!
} Um jeito melhor para ilustrar esse cen�rio (sem repetir c�digo)
[Swing] Navegar pelos campos ( indo ou voltando ) usando as setashttp://javafree.uol.com.br/topic-891048-Swing-Navegar-pelos-campos-indo-ou-voltando-usando-as-setas.htmlprograma��ohttp://javafree.uol.com.br/topic-891109-programacao.htmlAjuda com o programa de Jokenpohttp://javafree.uol.com.br/topic-891111-Ajuda-com-o-programa-de-Jokenpo.htmlProblema de Compila��o (Java + SQL)http://javafree.uol.com.br/topic-891107-Problema-de-Compilacao-Java-SQL.htmlo q quer dizer ';'http://javafree.uol.com.br/topic-891078-o-q-quer-dizer-.html	�ndice do forum ->