Você está na página 1de 2

www.tiexpert.

net O ponto de encontro do estudante de TI

Sobrecarga de mtodos
Java nos permite criar vrios mtodos com o mesmo nome desde que tenham parmetros diferentes. Isso o que chamamos de sobrecarga de mtodos. A sobrecarga de mtodos consiste em criarmos o mesmo mtodo com possibilidades de entradas diferentes. Essas entradas, caracterizadas como parmetros, devem sempre ser de tipos diferentes, quantidades de parmetros diferentes ou posies dos tipos diferentes. Para visualizarmos um cenrio, vejamos a classe abaixo:
public TV { int canal; int volume; boolean ligada; int tamanho; }

Agora, criaremos o mtodo ligar. O mtodo ligar, simplesmente, muda o valor dos atributos canal e volume para 3 e 25, respectivamente.
void ligar (){ canal = 3; volume = 25; ligada = true; }

Agora, vamos personalizar este mtodo para que ele mude o atributo ligada de acordo com o parmetro.
void ligar (boolean ligada){ canal = 3; volume = 25; this.ligada = ligada; }

Poderamos utilizar ambos os mtodos na mesma classe se quisermos, porque um possui argumentos e o outro no.
void ligar (){ canal = 3; volume = 25; ligada = true; } void ligar (boolean ligada){ canal = 3; volume = 25; this.ligada = ligada; }

Porm, o mesmo no pode ser aplicado aos atributos canal e volume. Porque no possvel criar um mtodo que recebe um inteiro e criar um outro mtodo com o mesmo nome que tambm recebe um inteiro, mesmo que estes dois inteiros sejam totalmente diferentes. Se visualizarmos como Java interpreta o mtodo, veramos: void ligar (int volume) = void ligar (int canal) void ligar (int) = void ligar (int) Por outro lado, perfeitamente possvel criarmos dois mtodos que recebam um booleano e um inteiro, inclusive se forem os mesmos, mas em posies diferentes. Isso acontece porque Java no verifica o nome do parmetro, mas apenas o tipo dele. void ligar (boolean ligada, int canal) void ligar (int canal, boolean ligada) void ligar (boolean, int) void ligar (int, boolean) Portanto, podemos fazer muitas combinaes desde que essas combinaes no sejam em nmeros iguais,

http://www.tiexpert.net/ver.php?page=108

Pgina 1

www.tiexpert.net O ponto de encontro do estudante de TI


de tipos iguais e nas mesmas posies. Abaixo, est a classe com algumas combinaes possveis. um bom costume sempre referenciar para o mtodo que recebe mais argumentos.
public class TV { int canal; int volume; boolean ligada; int tamanho; void ligar() { this.ligar(3, 25, true); } void ligar(boolean ligada) { this.ligar(3, 25, ligada); } void ligar(int canal, int volume) { this.ligar(canal, volume, true); } void ligar(int canal, int volume, boolean ligada) { this.canal = canal; this.volume = volume; this.ligada = ligada; }

Autor: Denys William Xavier Este artigo est sob Licena Creative Commons Para ver uma cpia desta licena, visite http://creativecommons.org/licenses/by-nc-sa/2.5/br/ ou envie uma carta para Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA.

http://www.tiexpert.net/ver.php?page=108

Pgina 2

Você também pode gostar