Programaçao Basica Em Java Parte 7

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

description

Programaçao Basica Em Java Parte 7

Transcript of Programaçao Basica Em Java Parte 7

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