Transcript

3.2 Sobrecarga de Mtodos (Overloading) possvel, em Java, e, muitas vezes, desejvel criar mtodos com mesmo nome, mas lista de parmetros diferentes. Isto chamado de sobrecarga de mtodos (ou overloading) e reconhecido em tempo de compilao. devido a esta propriedade que podemos ter dois mtodos construtores com parmetros diferentes. Por exemplo, na classe ContaCorrente podemos ter o mtodo construtor sobrecarregado: class ContaCorrente { static float dinheiroTotal; float saldo; String nome; public ContaCorrente (String nome) { this.nome = nome; saldo = 0; } public ContaCorrente (String nome, float saldo) { this.nome = nome; this.saldo = saldo; } ... // restante do cdigo 3.3 Passagem de Parmetros em Java A passagem de parmetros em Java por valor e no por referncia. Por exemplo, no possvel alterar o valor de um parmetro recebido do tipo primitivo dentro de um mtodo, pois os dados primitivos so passados por valor. Isso significa que o mtodo no tem acesso a varivel que foi usada para passar o valor. Quanto aos objetos, as referncias aos objetos tambm so passadas por valor. Desta maneira, voc no pode alterar a varivel que referncia um objeto, ou seja, no pode fazer com que a varivel que referencia o objeto aponte para outro objeto. Mas, pode-se alterar o contedo do objeto a qual essa varivel referencia, alterando o valor de um de seus atributos. Para entender melhor, veja o exemplo a seguir: class TestaPassagemParametros{ public static void trocaValorPrimitivo (int num){ num = num +6; } public static void trocaValorObjeto (ContaCorrente minhaConta){ minhaConta.saldo = 300; } public static void trocaReferenciaObjeto (ContaCorrente minhaConta){ minhaConta = new ContaCorrente ("Mulher Maravilha", 200); Programao Bsica em Java Profa. Patrcia Augustin Jaques 32 } public static void main (String args []){ int val = 11; TestaPassagemParametros.trocaValorPrimitivo (val); System.out.println ("val = "+val); ContaCorrente minhaConta = new ContaCorrente ("SuperHomem"); System.out.println (minhaConta.saldo); TestaPassagemParametros.trocaValorObjeto (minhaConta); System.out.println (minhaConta.saldo); TestaPassagemParametros.trocaReferenciaObjeto (minhaConta); System.out.println (minhaConta.nome); } } // da class c:\jdk1.3\bin\java.exe TestaPassagemParametros val = 11 0 300 SuperHomem