LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique <[email protected]> http://thiagorique.wordpress.com/ AGENDA Módulos de programa em Java Métodos static, campos static e classe Math Declarando métodos com múltiplos parâmetros Promoção e coerção de argumentos Escopo das declarações Sobrecarga de método MÓDULOS DE PROGRAMA EM JAVA Módulos em Java Métodos, classes e pacotes Programas Java Novos métodos e classes do programador + métodos e classes predefinidas na Java API (biblioteca de classes Java) MÓDULOS DE PROGRAMA EM JAVA Métodos Como um método é invocado? MÉTODOS STATIC, CAMPOS STATIC E CLASSE MATH Métodos static (ou métodos de classe) Geralmente realizam alguma tarefa que não depende do conteúdo de nenhum objeto. Para declarar um método deste tipo, coloque a palavra reservada static antes do tipo de retorno do método. Chamada a um método static NomeDaClasse.nomeDoMetodo(argumentos) MÉTODOS STATIC, CAMPOS STATIC E CLASSE MATH Classe Math Possui vários métodos static que realizam cálculos matemáticos comuns. Ex: Raiz quadrada de 900 Math.sqrt(900.0); O método sqrt aceita um argumento do tipo double e retorna um resultado do tipo double (30.0). System.out.println(Math.sqrt(900.0)); MÉTODOS STATIC, CAMPOS STATIC E CLASSE MATH Classe Math MÉTODOS STATIC, CAMPOS STATIC E CLASSE MATH Classe Math Constantes da classe Math PI e E Math.PI = relação da circunferência de um círculo com seu diâmetro Math.E = valor da base para logaritmos naturais Estes campos são declarados na classe Math com os modificadores public, final e static. public: permite que você use esses campos nas suas classes. final: representa uma constate. Seu valor não pode ser modificado depois de inicializado. static: permite que eles sejam acessados pelo NomeDaClasse + ponto separador (como os métodos static). MÉTODOS STATIC, CAMPOS STATIC E CLASSE MATH Campos static (variáveis de classe) Todos os objetos da classe compartilham uma cópia do campo static. DECLARANDO MÉTODOS COM MÚLTIPLOS PARÂMETROS DECLARANDO MÉTODOS COM MÚLTIPLOS PARÂMETROS DECLARANDO MÉTODOS COM MÚLTIPLOS PARÂMETROS PROMOÇÃO E COERÇÃO DE ARGUMENTOS Exemplos: System.out.println(Math.sqrt(4)); O Java converte o valor int 4 no valor double 4.0 e retorna o resultado 2.0. PROMOÇÃO E COERÇÃO DE ARGUMENTOS Exemplos: Suponha que o método square calcule o quadrado de um inteiro e, assim, requeira um argumento do tipo int. Para chamarmos square com um argumento double, a chamada do método deveria ser assim: square( (int) doubleValue ); //operador de coerção Assim, se o valor do argumento doubleValue for 4.5, o método receberá o valor 4 e retornará 16, não 20.25. ESCOPO DAS DECLARAÇÕES Regras básicas de escopo O escopo de uma declaração de parâmetro é o corpo do método em que a declaração aparece; O escopo de uma declaração de variável local é do ponto em que a declaração aparece até o final desse bloco; O escopo de uma declaração de variável local que aparece na seção de inicialização do cabeçalho de uma instrução for é o corpo da instrução for e as outras expressões no cabeçalho; O escopo de um método ou campo é o corpo inteiro da classe. SOBRECARGA DE MÉTODO Sobrecarga de métodos Métodos com o mesmo nome podem ser declarados na mesma classe, contanto que tenham diferentes conjuntos de parâmetros (determinados pelo número, tipos e ordem dos parâmetros). O método adequado é chamado examinando-se o número, os tipos e a ordem dos argumentos na chamada. Ex: Math abs, min e max são sobrecarregados com quatro versões: Uma com dois parâmetros double; Uma com dois parâmetros float; Uma com dois parâmetros int; Uma com dois parâmetros long. SOBRECARGA DE MÉTODO Declarando métodos sobrecarregados SOBRECARGA DE MÉTODO Declarando métodos sobrecarregados SOBRECARGA DE MÉTODO Declarando métodos sobrecarregados SOBRECARGA DE MÉTODO Declarando métodos sobrecarregados SOBRECARGA DE MÉTODO Distinguindo entre métodos sobrecarregados Assinatura do método Combinação do nome do método e número, tipos e ordem dos seus parâmetros. Tipos de retorno dos métodos sobrecarregados As chamadas de métodos não podem ser distinguidas por tipo de retorno. Veja exemplo no próximo slide... SOBRECARGA DE MÉTODO Tipos de retorno dos métodos sobrecarregados SOBRECARGA DE MÉTODO Tipos de retorno dos métodos sobrecarregados REFERÊNCIA DEITEL, H.M; Java Como Programar. 8ª ed. Ed. Pearson, 2010.