Baixe o app para aproveitar ainda mais
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
Compartilhar