Sei sulla pagina 1di 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.

1
Preparado por eng.Tatiana Kovalenko

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

1
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 por
programador);
 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
3
o
controle para o método que chamou.

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 23), 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

2
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étodo não pode utilizar variáveis declaradas noutros
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.
5
O exemplo a seguir ilustra este facto.

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
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 7
V= 100 depois da chamada

Analise o exemplo a seguir:

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

4
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á:
9
O conteudo da variavel x = 10

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

5
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
11
5 125

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

6
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 2– Teoria e aplicações”. Axcel Books. 2004

13

Potrebbero piacerti anche