A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Classes Concretas e Abstratas

Apresentações semelhantes


Apresentação em tema: "Classes Concretas e Abstratas"— Transcrição da apresentação:

1 Classes Concretas e Abstratas
Laboratório de Java Classes Concretas e Abstratas (Lab. IV) Prof. Guido Araújo

2 Classes Concretas Classe que pode ser instanciada diretamente
class Livro { .... public void bloqueia() { .... } } public static void main() { Livro livro; Livro +bloqueia() +desbloqueia() +empresta() +retorna()

3 Herança é tudo ? Considere uma biblioteca de livros e fitas Livro Fita
+bloqueia() +desbloqueia() +empresta() +retorna() Fita +alteraNivel() +empresta() +retorna() Livro Fita Fita Livro

4 Classes Abstratas Captura aspectos comuns e abstratos do objeto
Classe não pode ser instanciada diretamente abstract class Item { .... public void empresta(); public void retorna(); } abstract Item +empresta() +retorna() Livro +bloqueia() +desbloqueia() +empresta() +retorna() Fita +alteraNivel() +empresta() +retorna() class Livro extends Item { .... }

5 Métodos Abstratos Possuem somente a assinatura
abstract class Item { .... abstract public void empresta(); } Possuem somente a assinatura É abstrata se possui pelo menos um único método abstrato Sub-classe de classe abstrata precisa implementar todos métodos senão é abstrata class Livro extends Item { .... public void empresta() {...} public void retorna(); }

6 Exercício No diretório abstrata
Compile o programa TestandoAbstrata.java Efetue todas as correções (são 2 erros) Em main, remova o comentário da instanciação de Livro Coloque o comentário de volta novamente

7 Laboratório de Java Interfaces (Lab. IV cont.) Prof. Guido Araújo

8 Interfaces Especifica um tipo abstrato de dados (API)
Conjunto de assinaturas de métodos Não implementa métodos nem estrutura de dados Permite constantes: final float pi = ; interface ItemEmprestaval { .... boolean estaDisponivel(); boolean estaEmprestado(); }

9 Utilizando Interfaces
interface ItemEmprestavel { .... boolean estaDisponivel(); boolean estaEmprestado(); } class Livro implements ItemEmprestavel { .... public boolean estaDisponivel() { .... } public boolean estaEmprestado() { .... } }

10 Utilizando Interface Projeto Implementação Execução Interface Classe
Abstrata Concreta Execução Objeto

11 Regras de Ouro do Bom Projeto
interface Item { .... } Todo tipo abstrato de dados deve possuir uma interface Públicos somente tipos da interface Instâncias devem usar a interface class Livro implements Item{ .... public: somente métodos da interface.... } class Usuario { Livro livro; CD cd; } Item item;

12 Exercício No diretório interface
Compile, execute e entenda SemInterface.java Compile, execute e entenda ComInterface.java Qual a diferença entre eles no que se refere à complexidade ?

13 Laboratório de Java Tratamento de Exceção (Lab. IV cont.)
Prof. Guido Araújo

14 Hierarquia de Exceções
Throwable Error Exception VirtualMachineError RuntimeException OutOfMemoryError ArithmeticException

15 Fluxo de uma Exceção try { catch (Exception e) { } } finally { }
throw e . catch (Exception e) { } } finally { }

16 Fluxo Normal try { catch (Exception e) { } } finally { }

17 Exercício 3 No diretorio excecoes
Compile, execute e entenda ExceptionTeste.java Altere deuErro para true Compile, execute e entenda o que ocorreu

18 Ordem de Tratamento try { catch (Arithmeticexception e) { } }
throw e . catch (Arithmeticexception e) { } } catch (Runtimeexception e) { finally { } catch (Exception e) { } }

19 Exercício No diretorio excecoes Compile OrdemTratamento.java
Altere o programa para que ele compile corretamente Compile, execute e entenda Instancie agora uma Exception ao invés de uma ExceptionNeta Compile e descubra o que ocorreu

20 Hierarquia do Tratamento (interna)
try try catch NÃO TRATA finally catch finally

21 Exercício 3 No diretorio excecoes
Compile, execute e entenda HierarquiaTratamento.java Altere o valor de numException para 2 Compile, execute e entenda

22 Throw em Método (externa)
void chamador() { chamado() void chamado() throws Exception { try throw e catch finally } }

23 Exercício No diretorio excecoes Compile ThrowEmMetodo.java
O compilador espera um tratador para a execução lançada dentro de chamado(). O que fazer para informar que a exceção é tratada for a de chamado(). Efetue a correção apropriada, compile e execute Atribua true a deuErro, compile, execute e entenda


Carregar ppt "Classes Concretas e Abstratas"

Apresentações semelhantes


Anúncios Google