Buscar

sem 07 subprogramas

Prévia do material em texto

Aula teórica 10 
 
Tema 7. Subprogramas 
•  Subprogramas em Java 
•  Chamada de métodos. 
•  Área de domínio das variáveis 
•  Passagem de parâmetros 
Preparado por eng.Tatiana Kovalenko 1	
  
Subprogramas 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. 
 
Principais vantagens de uso de módulos (em outras LP 
chamados funções, procedimentos, subrotinas e subprogramas) 
são: 
1.  lidar com a complexidade; 
2.  encurtar os programas; 
3.  tornar programas mais claras e legíveis; 
4.  facilitar a correcção dos erros; 
5.  tornar os programas mais eficazes. 
2	
  
Os módulos em Java são chamados de métodos e classes. Os 
programas em Java são escritos combinando-se novos métodos e 
classes que o programador escreve com métodos e classes “pré-
empacotados” disponíveis na Java API (biblioteca de classes Java) e 
em várias outras bibliotecas de métodos e classes. 
A Java API 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. Os 
métodos da Java API são fornecidos como parte do Java Developer’s 
Kit (J2SDK). 
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 reais (ou argumentos) 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. Entretanto, existe uma excepção a esta 
regra. Os métodos static de uma classe somente podem 
chamar outros métodos static da classe directamente. 
Exemplos de chamdada 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. 4	
  
Quando um método (subprograma) tem valor de retorno, a sua 
chamada tem que ser integrada numa instrução, para que o 
valor devolvido possa ser utilizado. 
Os parâmetros de um método podem ser constantes, variáveis 
ou expressões. Por exemplo: 
 System.out.println (Math.sqrt(c+d*f)); 
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(); 
 
5	
  
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; 
§  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. 
Destas regras decorrem as noções de área de domínio de 
variáveis, locais e globais. Estas noções estão ligadas ao local, 
no programa, em que as variáveis são declaradas. 
 
6	
  
Á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. Para alem disso, é importante notar que 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. O exemplo a seguir 
ilustra este facto. 
 7	
  
public class AreaDominio_VarLocais 
{ public static void main(String args[]) 
	
   { int v = 50; 
 System.out.println("V= "+v+" antes da chamada"); 
 muda(); 
 System.out.println("V= "+v+" depois da chamada"); 
 } 
 
 public static void muda() 
	
   { int v = 100; 
 System.out.print("V="+v+" dentro do metodo muda"); 
 } 
} 
O output será: 
 V= 50 antes da chamada 
V= 100 dentro do metodo muda 
V= 50 depois da chamada 
 
8	
  
Referência bibliográfica: 
 
António José Mendes; Maria José Marcelino. 
“Fundamentos de programação em Java 2”. FCA. 2002. 
 
Carriço, José; Carriço, António. 
"Computadores, Tecnologias e sistemas de Informação- O Núcleo de Sistema“. 
Centro de Tecnologias de Informação Ltd. Lisboa. 1997 
 
Carriço, José; Carriço, António. 
"Computadores, Tecnologias e sistemas de Informação- Periféricos, Internet e multimédia“. 
Centro de Tecnologias de Informação Ltd. Lisboa. 1997. 
 
Carriço, José; Carriço, António. 
"Computadores, Tecnologias e sistemas de Informação- Tecnologias de Software“. 
Centro de Tecnologias de Informação Ltd. Lisboa.1997. 
 
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 
9

Continue navegando