Você está na página 1de 7

3/27/2019

AULA TEÓRICA 9

Tema 3. Módulos

Módulos em Java

Chamada de método. Parâmetros.

Área de domínio das variáveis.

Passagem de parâmetros.

Preparado por eng.Tatiana Kovalenko

1

Módulos em Java

A experiência mostra que a melhor maneira de desenvolver e manter um programa grande é construí-lo a partir de pedaços pequenos e simples, chamados de módulos ou subprogramas. Cada um deles resolve um aspecto particular do problema.

Os módulos em Java são chamados de métodos e classes.

Java fornece uma rica colecção de classes e métodos para realizar cálculos matemáticos comuns, manipulações de caracteres, operações de entrada/saída e muitas outras operações úteis.

Organização de um programa

Um programa em Java é constituído por uma classe que engloba um conjunto de métodos independentes. Três regras importantes são:

Um programa contém:

o

declarações de variáveis;

o

um método principal;

o

um conjunto de métodos definidos pelo programador;

2

3/27/2019

Os métodos contêm:

o declarações de variáveis; o instruções elementares (atribuição, selecção, repetição,

o chamadas

);

de

métodos

(pré-definidos

ou

criados

programador);

por

Um método recebe dados e produz resultados. Os detalhes internos de um método são irrelevantes fora dele.

Chamada de um método. Parâmetros

A chamada de um método (subprograma) é feita através do seu nome

(identificador) seguido por parênteses() contendo (ou não) uma lista de parâmetros de que o método necessita para funcionar.

Existe uma relação de número, de ordem e de tipo entre os parâmetros reais e parâmetros formais (aqueles que encontram-se dentro de método).

Quando a chamada de método termina, o método ou devolve um resultado para o método que chamou ou simplesmente devolve o controle para o método que chamou.

3

Se o método estiver em uma outra classe, a chamada deve ser precedida por um nome de referência e um operador ponto. Mas se estiver em mesma classe, pode chamar os outros métodos directamente. Exemplos de chamada de métodos:

drawLine (0,0,20,20); resultado = Math.pow(2,3);

O método pow é chamado de forma diferente do drawLine.

Enquanto que a chamada do método drawLine é uma instrução autónoma, a chamada do pow aparece integrada numa instrução de

atribuição.

Isto acontece porque este último tem um valor de retorno (o resultado

do cálculo da potência 2 3 ), enquanto que o método drawLine se

limita a desenhar a linha sem devolver qualquer valor.

Quando um método tem valor de retorno, a sua chamada tem que ser integrada numa instrução, para que o valor devolvido possa ser utilizado.

4

3/27/2019

Área de domínio das variáveis

Existe uma diferença importante entre as instruções e as declarações de variáveis. As instruções têm que estar sempre dentro de um método, enquanto que a declaração de variáveis pode estar dentro ou fora de um método.

Um

métodos.

Variáveis locais

Variáveis declarados dentro de um método chamam-se locais. Eles

podem ser utilizados somente dentro do método onde foram

declaradas. Uma variável local é criada sempre que o método é activado e destruída quando ele termina a sua execução. É permitido utilizar os mesmos nomes para diferentes variáveis no mesmo programa em diferentes métodos (mas não é a boa prática). Ainda que tenham o mesmo nome, trata-se de variáveis diferentes, localizadas em espaços de memória separados. O exemplo a seguir ilustra este facto.

noutros

método

não

pode

utilizar

variáveis

declaradas

5

import javax.swing.JOptionPane; public class AreaDominio_VarLocais { public static void muda() { int v = 100; JOptionPane.showMessageDialog(null,"V= "+v+" dentro

}

do metodo muda");

public static void main(String[] args) { int v = 50; JOptionPane.showMessageDialog(null,"V= "+v+" antes da chamada");

muda(); JOptionPane.showMessageDialog(null,"V= "+v+" depois da chamada");

}

}

O output será:

V= 50 antes da chamada V= 100 dentro do metodo muda V= 50 depois da chamada

6

3/27/2019

Variáveis globais

Variáveis declarados no início da execução do programa, fora de qualquer método, chamam-se globais. Eles podem ser utilizados em qualquer método e são destruídas quando o programa termina. Não é boa prática declarar todas as variáveis como globais.

import javax.swing.JOptionPane; public class AreaDominio_VarGlobais { static int v;

public static void muda()

{ v = 100;

JOptionPane.showMessageDialog(null,"V= "+v+" dentro

}

do metodo muda");

public static void main(String[] args)

{ v = 50;

JOptionPane.showMessageDialog(null,"V="+v+"antes da chamada");

muda();

JOptionPane.showMessageDialog(null,"V="+v+"depois da chamada");

}

}

O output será: V= 50 antes da chamada V= 100 dentro do método muda V= 100 depois da chamada

Analise o exemplo a seguir:

7

import javax.swing.JOptionPane; public class AreaDominio_VarGlobais2 { static int v;

public static void muda()

{

int v = 100; JOptionPane.showMessageDialog(null,"V= "+v+" dentro

do metodo muda");

}

public static void main(String[] args)

{ v = 50;

JOptionPane.showMessageDialog(null,"V="+v+"antes da chamada");

muda();

JOptionPane.showMessageDialog(null,"V="+v+"depois da chamada");

}

}

O output será:

V= 50 antes da chamada V= 100 dentro do método muda V= 50 depois da chamada

Nota a diferença no output deste programa.

8

3/27/2019

Passagem de parâmetros

Em Java, a passagem de parâmetros de tipos predefinidos (int, float, boolean, etc.) é feita por valor, que significa que não é o parâmetro que é passado ao método, mas apenas o seu valor. Exemplo:

import javax.swing.JOptionPane;

public class Exemplo

{

public static void muda(int valor)

 

{

valor = 20; }

public static void main(String[] args)

 

{

int x = 10; //cria variável x e inicializa-a

 

muda(x);

//chamada do método muda com passagem de parâm. X

JOptionPane.showMessageDialog(null,"O conteúdo da variavel x= "+x);

 

}

}

O output será:

O conteudo da variavel x = 10

9

A execução deste programa começa pelo subprograma main(), como é habitual. Após de inicialização da variável x com o valor 10 é invocado o método muda(), tendo como parâmetro real a variável x. Este parâmetro corresponde ao parâmetro formal valor. Durante a execução do método muda() a variável valor, inicialmente tendo o valor 10, passado na hora de chamada, recebe o novo valor 20.

Ao terminar a execução do muda(), o controlo é devolvido ao

programa chamador, que executa a instrução a seguir, visualizando o valor da variável x que ficou inalterado. Isso acontece porque o valor da variável x que é passado ao subprograma e não a própria variável x.

Valor de retorno

Todos os métodos até agora considerados não devolvem qualquer resultado ao método que faz a sua chamada. Este facto é confirmado pela presença da palavra reservada void no cabeçalho. Quando é necessário que o método devolva um valor que calculou, a palavra void deve ser substituída pelo tipo de resultado que o método deve devolver.

10

3/27/2019

Este programa testa o método chamado cubo() que devolve o cubo dum valor do tipo byte passado como parâmetro:

import javax.swing.JOptionPane; public class TestarCubo { public static int cubo (byte n)

{

return n*n*n;

}

public static void main(String[] args)

{

String s = ""; for (byte i = 1; i<=5; i++)

{ s += i + " "+ cubo(i)+"\n"; } //chamada do metodo

JOptionPane.showMessageDialog(null,s);

}

}

O output será:

1

1

2

8

3

27

4

64

5

125

11

Os métodos da classe Math

Os métodos da classe Math permitem realizar certos cálculos matemáticos comuns.

Todos os métodos da classe Math são static, portanto eles

são invocados precedendo-se o nome do método com o nome

da classe Math e um operador ponto (.)

A classe Math também define duas constantes matemáticas

Math.PI e Math.E

O método Math.random()gera um número aleatório double

entre 0.0 e 1.0, mas não incluindo 1.0, por exemplo:

numero = Math.random();

12

3/27/2019

Referência bibliográfica:

António José Mendes; Maria José Marcelino. “Fundamentos de programação em Java 2. FCA. 2002.

Elliot Koffman; Ursula Wolz. “Problem Solving with Java”. 1999.

John R. Hubbard. “Theory and problems of programming with Java”. Schaum’s Outline series. McGraw-Hill.

H. Deitel; P. Deitel. “Java, como programar”. 4 edição. 2003. Bookman.

Rui Rossi dos Santos. Programando em Java 2Teoria e aplicações”. Axcel Books. 2004

13