Professional Documents
Culture Documents
Mtodos
Roteiro
Declarao Ativao Variveis locais Valor de retorno Passagem de parmetros Parmetros de sada Nmero varivel de parmetros Variveis globais
Todos os direitos reservados Klais
Mtodos
Mtodos em Java so anlogos a funes e procedimentos em outras linguagens como VB e Pascal. O uso do nome mtodo ao invs de funo ou procedimento est relacionado aos conceitos de orientao a objetos, j comentados.
Um exemplo
static int mdc(int a, int b){ while(a != b) if(a > b) a -=b; else b -=a; return a; }
Mtodos
Neste exemplo
int mdc define o nome (mdc) e o tipo do valor retornado (int) pelo mtodo mdc. (int a, int b) define os parmetros (a e b, inteiros) usados pelo mtodo. o modificador static indica que o mtodo no est vinculado a nenhum objeto (objetos sero tratados mais adiante). os comandos entre { e } correspondem ao 'corpo' do mtodo e sero executados cada vez que o mesmo for ativado. o comando return encerra a execuo do mtodo e define o valor devolvido pelo mesmo.
Todos os direitos reservados Klais
public class Exemplo { static int mdc(int a, int b){ while(a != b) if(a > b) a -=b; else b -=a; return a; } public static void Main(string[] args){ int x = 33; int y = 605; int m = mdc(x,y); System.out.println( x:+x+ y:+y, mdc:+m ); } }
Mtodos
Neste exemplo
o comando int m = mdc(x,y); atribui como valor inicial da varivel m o valor retornado pela ativao do mtodo feita em mdc(x,y). Os parmetros usados nessa ativao so os valores de x e y: durante execuo do mtodo, o parmetro a substitudo pelo valor de x e o parmetro b substitudo pelo valor de y.
Um mtodo pode ter variveis locais, que so variveis declaradas dentro do mtodo. Variveis locais podem ser utilizadas apenas dentro do mtodo onde foram declaradas. Os parmetros do mtodo tambm so locais a ele.
Um exemplo
static float media(float[] v){ float s = 0; for(int i = 0; i < v.length; i++) s += v[i]; return s/v.length; }
Neste exemplo
v, s e i so variveis locais ao mtodo media. v parmetro do mtodo, que usado como
Outro exemplo
public class Exemplo{ static float media(float[] v){ float s = 0.0F; for(int i = 0; i < v.length; i++) s += v[i]; return s/v.length; } public static void main(String[] args){ float[] dados = { 5.0F, 3.5F, 4.2F, 0.1F, 9.2F, 10.8F, 12.0F }; float m = media(dados); System.out.println("media:+m); } }
Variveis Locais
Mtodos diferentes podem ter parmetros ou variveis locais com nomes comuns. Nesse caso, cada mtodo tem os seus prprios parmetros e variveis locais, independentemente de os nomes serem os mesmos.
Valor de Retorno
Todos exemplos de mtodos apresentados at aqui retornam um valor ao serem chamados. Esse valor pode ser usado para atribuir um valor a uma varivel ou mesmo numa expresso, como por exemplo: m = mdc(x,y)*10;
Valor de Retorno
Em alguns casos, no se deseja que o mtodo retorne um valor. Nesse caso, o tipo retornado pelo mtodo definido como void. Exemplo:
static void writeMax(float[] v){ float m = v[0]; for(int i = 1; i < v.length; i++) if(v[i] > m) m = v[i]; System.out.println("maximo:+m); }
Um exemplo
static void writeMax(float[] v){ float m = v[0]; for(int i = 1; i < v.length; i++) if(v[i] > m) m = v[i]; System.out.println(" maximo:+m); } static void writeMin(float[] v){ float m = v[0]; for(int i = 1; i < v.length; i++) if(v[i] < m) m = v[i]; System.out.println(" minimo:+m); } public static void main(String[] args){ float[] dados = { 5.0F, 3.5F, 4.2F, 0.1F, 9.2F, 10.8F, 12.0F }; writeMin(v); writeMax(v); }
Todos os direitos reservados Klais
Passagem de Parmetros
Nos mtodos apresentados at agora, os parmetros so passados por valor. Exemplo: numa chamada de mtodo como m = mdc(x,y); os valores das variveis x e y so atribudos aos parmetros a e b do mtodo mdc.
Passagem de Parmetros
Numa chamada a um mtodo com parmetros passados por valor, o valor passado como parmetro pode ser uma constante ou mesmo o resultado de uma expresso, como por exemplo: m = mdc(115,x+y*8); Durante a execuo do mtodo mdc, o valor dos parmetros alterado. As alteraes so feitas nas variveis locais do mtodo, correspondentes aos parmetros e no afetam as variveis usadas na chamada ao mtodo.
Ao se passar um vetor como parmetro por valor, os seus elementos se comportam como se fossem passados por referncia. Isso significa que se alterarmos o valor de um elemento do vetor dentro do mtodo, essa alterao vai ocorrer tambm no elemento do vetor passado como parmetro.
Um exemplo
public static void inverte(int[] v){ int k = v.length-1; for(int i = 0; i < v.length/2; i++){ int t = v[i]; v[i] = v[k-i]; v[k-i] = t; } }
Aps uma chamada a este mtodo, como por exemplo em "inverte(w);", os elementos do vetor w sero invertidos.
Todos os direitos reservados Klais
Os exemplos apresentados at aqui usam variveis locais aos mtodos. Em Java possvel definir variveis fora dos mtodos, ou atributos das classes. Os atributos podem ser usadas pelos mtodos da classe.