1
3.2 Sobrecarga de Métodos (Overloading) É possível, em Java, e, muitas vezes, desejável criar métodos com mesmo nome, mas lista de parâmetros diferentes. Isto é chamado de sobrecarga de métodos (ou overloading) e é reconhecido em tempo de compilação. É devido a esta propriedade que podemos ter dois métodos construtores com parâmetros diferentes. Por exemplo, na classe ContaCorrente podemos ter o método 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 código 3.3 Passagem de Parâmetros em Java A passagem de parâmetros em Java é por valor e não por referência. Por exemplo, não é possível alterar o valor de um parâmetro recebido do tipo primitivo dentro de um método, pois os dados primitivos são passados por valor. Isso significa que o método não tem acesso a variável que foi usada para passar o valor. Quanto aos objetos, as referências aos objetos também são passadas por valor. Desta maneira, você não pode alterar a variável que referência um objeto, ou seja, não pode fazer com que a variável que referencia o objeto aponte para outro objeto. Mas, pode-se alterar o conteúdo do objeto a qual essa variável 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); Programação Básica em Java Profa. Patrícia 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

Programaçao Basica Em Java Parte 7

Embed Size (px)

DESCRIPTION

Programaçao Basica Em Java Parte 7

Citation preview

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