linguagem de programaÇÃo orientada a objetos mÉtodos – uma visÃo mais aprofundada prof. thiago...

24
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique <[email protected]> http://thiagorique.wordpress.com/

Upload: internet

Post on 17-Apr-2015

120 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique

LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

MÉTODOS – UMA VISÃO MAIS APROFUNDADA

Prof. Thiago Pereira Rique

<[email protected]>

http://thiagorique.wordpress.com/

Page 2: LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique

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

Page 3: LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique

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)

Page 4: LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique

MÓDULOS DE PROGRAMA EM JAVA

Métodos Como um método é invocado?

Page 5: LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique

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)

Page 6: LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique

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));

Page 7: LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique

MÉTODOS STATIC, CAMPOS STATIC E CLASSE MATH

Classe Math

Page 8: LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique

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).

Page 9: LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique

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.

Page 10: LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique

DECLARANDO MÉTODOS COM MÚLTIPLOS PARÂMETROS

Page 11: LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique

DECLARANDO MÉTODOS COM MÚLTIPLOS PARÂMETROS

Page 12: LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique

DECLARANDO MÉTODOS COM MÚLTIPLOS PARÂMETROS

Page 13: LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique

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.

Page 14: LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique

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.

Page 15: LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique

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.

Page 16: LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique

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.

Page 17: LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique

SOBRECARGA DE MÉTODO

Declarando métodos sobrecarregados

Page 18: LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique

SOBRECARGA DE MÉTODO

Declarando métodos sobrecarregados

Page 19: LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique

SOBRECARGA DE MÉTODO

Declarando métodos sobrecarregados

Page 20: LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique

SOBRECARGA DE MÉTODO

Declarando métodos sobrecarregados

Page 21: LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique

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...

Page 22: LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique

SOBRECARGA DE MÉTODO

Tipos de retorno dos métodos sobrecarregados

Page 23: LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique

SOBRECARGA DE MÉTODO

Tipos de retorno dos métodos sobrecarregados

Page 24: LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique

REFERÊNCIA

DEITEL, H.M; Java Como Programar. 8ª ed. Ed. Pearson, 2010.