You are on page 1of 19

Curso de Java

Mtodos

Todos os direitos reservados Klais

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.

Todos os direitos reservados Klais

Um exemplo

static int mdc(int a, int b){ while(a != b) if(a > b) a -=b; else b -=a; return a; }

Todos os direitos reservados Klais

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

Mtodos: Exemplo de uso

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 ); } }

Todos os direitos reservados Klais

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.

Todos os direitos reservados Klais

Mtodos: Variveis locais

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.

Todos os direitos reservados Klais

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

uma varivel local.


Todos os direitos reservados Klais

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); } }

Todos os direitos reservados Klais

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.

Todos os direitos reservados Klais

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;

Todos os direitos reservados Klais

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); }

Todos os direitos reservados Klais

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.

Todos os direitos reservados Klais

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.

Em Java, parmetros de tipos primitivos sempre so passados por valor


Todos os direitos reservados Klais

Vetores como Parmetros

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.

Todos os direitos reservados Klais

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

Uso dos atributos da Classe

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.

Todos os direitos reservados Klais

You might also like