• Nenhum resultado encontrado

Interfaces de Classe e Exceções

N/A
N/A
Protected

Academic year: 2021

Share "Interfaces de Classe e Exceções"

Copied!
40
0
0

Texto

(1)

Interfaces de Classe e Excessões

Carlos Andrés Ferrero

Material adaptado do curso de Desenvolvimento de Software em Java elaborado pelo Prof. Marcos André Pisching.

(2)

Problema

2

• Queremos projetar e implementar a parte d e autenticação do nosso sistema bancário.

Destrinchando a classe Funcionário, suponhamos o seguinte diagrama de classes.

(3)

Problema

3

• Acontece que apenas Diretores e Gerentes

podem fazer login no sistema interno do banco, os quais implementam o método autentica.

(4)

Problema

4

• Podemos pensar em algumas alternativas para tratar o problema em nível do sistema bancário:

(5)

Problema

5

• Podemos pensar em algumas alternativas para tratar o problema em nível do sistema bancário:

(6)

Problema

6

• Podemos pensar em algumas alternativas para tratar o problema em nível do sistema bancário:

(7)

Problema

7

• Podemos pensar em algumas alternativas para tratar o problema em nível do sistema bancário:

(8)

Problema

8

• Podemos pensar em algumas alternativas para tratar o problema em nível do sistema bancário:

(9)

Problema

9

• Podemos pensar em algumas alternativas para tratar o problema em nível do sistema bancário:

(10)

Problema

10

• Podemos pensar em algumas alternativas para tratar o problema em nível do sistema bancário:

(11)

Problema

11

• Uma solução mais próxima do correto seria utilizar conceito de Herança para essas duas classes:

(12)

Problema

12

(13)

Problema

13

• Muito bem!

• O problema parece estar Ok.

• Mas e se esse sistema do banco seria acessado também pelos clientes do banco (claro, com uma visão diferente)?

(14)

Problema

• Ficaria bom dessa forma?

(15)

Problema

(16)

Conceito

16

• As Interfaces são como contratos que são feitos pelas classes e que as mesmas devem cumprir. • Por exemplo, se construirmos uma Interface

“Autenticável” com uma assinatura para

autenticar, então todas as classes que assumirem o contrato e se dizerem “Autenticáveis” deverão escrever esse método.

(17)

Conceito

17

• Muito Importante: as interfaces apenas

consistem no que os objetos devem fazer e não como devem fazer, ou seja, não inclui

implementação dos métodos

• Vamos então refazer o nosso diagrama de classes, da seguinte forma:

(18)

Solução

(19)

Conceito

19

(20)

Conceito

20

(21)

Solução

21

(22)

Observações

22

• A classe cliente não foi implementada no exemplo anterior, mas pode ser implementada facilmente apenas fazendo a classe Cliente implementar

(implements) a interface Autenticável.

• Uma classe pode importar várias interfaces, ou seja, pode assinar vários contratos.

• Você não se preocupa com a natureza do objeto com que se interage durante o desenvolvimento, mas apenas com o que ele é capaz de fazer.

(23)

Exercício

23

• A partir da Interface AreaCalculavel

• Implemente Quadrado, Retângulo e

(24)

Tratamento de Exceções

24

• As exceções representam uma situação que

normalmente não ocorre e algo de estranho ou inesperado do sistema.

• Assim esses possível casos inesperados devem ser previamente tratados pelo programador.

• Essa situação requer de experiência e de conhecimento domínio do problema, pois devemos considerar erros que não são

detectáveis em tempo de programação e nem compilação.

(25)

Situação

(26)

Situação

(27)

Tratamento de Exceções

27

• Isso ocorre porque o método2 não trata a

situação “inesperada”; e isso também não foi feito pelo método1 e nem pelo main.

• A sequência de perguntas é:

– “o metodo2 está se precavendo de um problema

chamado ArrayIndexOutOfBoundsException?” Não.. – “o metodo1 está se precavendo de um problema

chamado ArrayIndexOutOfBoundsException?” Não.. – “o main está se precavendo de um problema

(28)

Tratamento de Exceções

28

• Inclusive podemos observar que não apareceu na tela a conclusão de cada método com suas

respectivas strings. Portanto, o programa terminou, o que não é muito desejável.

(29)

Tratamento de Exceções

29

• Inclusive podemos observar que não apareceu na tela a conclusão de cada método com suas

respectivas strings. Portanto, o programa terminou, o que não é muito desejável.

(30)

Tratamento de Exceções

30

• Tratamento com try catch, fora do for

(31)

Tratamento de Exceções

31

• Qual a diferença no resultado?

• Experimente colocar o try catch no método1 e retire do método1;

(32)

Tratamento de Exceções

32

• No decorrer da disciplina executamos várias operações, como por exemplo, em acesso a

banco de dados, em que o NetBeans solicitou que tratássemos uma exceção.

• Essas exceções são chamadas de checked ou

verificadas. Aquelas que não são solicitadas, mas que devem ser conhecidas são denominadas de

unchecked ou não-verificadas. (como

ArrayOutOfBoundsException ou ArithmeticException)

(33)

Tratamento de Exceções

33

(34)

Tratamento de Exceções

34

• A IDE irá solicitar que escolhamos:

– Add throws declaration:

(35)

Tratamento de Exceções

35

• Existe uma grande tentação em passar a

responsabilidade de tratar as exceções para “outros”, na volta da recursão.

• Não há regras específicas de onde tratar

exatamente cada exceção e depende da situação em que cada exceção pode ocorrer.

(36)

Tratamento de Exceções

36

• Podemos também criar classes de exceções, para tratar situações específicas. Por exemplo,

(37)

Tratamento de Exceções

37

• Utilizando uma classe de exceção em banco de dados:

(38)

Tratamento de Exceções

38

• Relação com Interfaces

– Em várias situações uma interface pode apresentar uma assinatura já com o throws, isso faz com que o método que instanciar um objeto que use essa

interface deverá tratar a exceção, não ficando de responsabilidade do método em si, diminuindo a quantidade de código em cada classe.

(39)

• E-mail – [email protected] • Website – http://sites.google.com/site/anfer86/ Contato 39

(40)

• Treinamentos Caleum. Interfaces. Disponível em:

http://www.caelum.com.br/apostila-java-orientacao-objetos/interfaces/

• Treinamentos Caleum. Exceções e controle de erros. Disponível em:

http://www.caelum.com.br/apostila-java-orientacao-objetos/excecoes-e-controle-de-erros/

Referências

Referências

Documentos relacionados

No capítulo 4 são abordados os principais resultados obtidos diante das restrições impostas à coleta de dados, bem como a avaliação dos dados obtidos caracterizando os períodos

(grifos nossos). b) Em observância ao princípio da impessoalidade, a Administração não pode atuar com vistas a prejudicar ou beneficiar pessoas determinadas, vez que é

A coleta de dados será realizada em uma empresa multinacional do segmento de varejo no Brasil cujo nome não será apresentado e será conhecida como Empresa AA. Serão

Considerando que o MeHg é um poluente ambiental altamente neurotóxico, tanto para animais quanto para seres humanos, e que a disfunção mitocondrial é um

Many more European associations, consortia and networks are operating at a transnational level: just to mention a few of them, the Association of European Correspondence

CAPÍTULO XIII DIREITO PROCESSUAL PENAL .... Alegação de Constrangimento

A fraqueza muscular respiratória pode acarretar redução da capacidade de expansão da caixa torácica e de insulflação pul- monar , favorecendo uma alteração pulmonar

Na entrevista a seguir, Capovilla revisita a própria trajetória intelectual, debate a sua passagem pelo Centro Popular de Cultura de São Paulo e as críticas que escreveu para