LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INTERFACES Prof. Thiago Pereira Rique

Slides:



Advertisements
Apresentações semelhantes
Paulo Marques Hernâni Pedroso
Advertisements

Java - Interfaces Prof. Msc. Flávio Viotti.
Projeto 1.
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS CLASSES ABSTRATAS
H ERANÇA E P OLIMORFISMO Prof. Thiago Pereira Rique
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS TRATAMENTO DE EXCEÇÕES
APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE II Prof. Thiago Pereira Rique
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS - LPOO APRESENTAÇÃO DA DISCIPLINA Prof. Thiago Pereira Rique
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique
Prof. Thiago Pereira Rique
APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS APRESENTAÇÃO DA DISCIPLINA Prof. Thiago Pereira Rique
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS - LPOO APRESENTAÇÃO DA DISCIPLINA Prof. Thiago Pereira Rique
LÓGICA MATEMÁTICA ARGUMENTOS E REGRAS DE INFERÊNCIA
LÓGICA MATEMÁTICA APRESENTAÇÃO DA DISCIPLINA
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INTRODUÇÃO À TECNOLOGIA DE OBJETOS Prof. Thiago Pereira Rique
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INSTRUÇÕES DE CONTROLE – PARTE II Prof. Thiago Pereira Rique
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INSTRUÇÕES DE CONTROLE – PARTE I Prof. Thiago Pereira Rique
INTRODUÇÃO À TECNOLOGIA DE OBJETOS Prof. Thiago Pereira Rique.
APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS PROGRAMAÇÃO VISUAL COM NETBEANS IDE Prof. Thiago Pereira Rique
APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS ACESSO A BANCO DE DADOS COM O JDBC Prof. Thiago Pereira Rique
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS CLASSES E OBJETOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique
Perspectivas baseadas em procedimentos e orientadas por objectos Conceitos principais: Encapsulamento, Herança, Polimorfismo (Encapsulation, Hierarchy,
Padrões GoF – Factory Method
Diagrama de Classes.
Linguagem de Programação II
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Interfaces em Java1 Interfaces Prof. Ricardo Linden.
Classes e objetos P. O. O. Prof. Grace.
Para dirigir ou participar de uma sessão de negócios na organização MR, você precisa conhecer algumas regras parlamentares. Vamos conhecer as principais.
Revisão POO Profa. Cintia Carvalho Oliveira
Princípios de Orientação à Objetos
Aula prática - análise contextual
Singleton e Adapter Professor: Nazareno Andrade
Ferramentas para Orientação a Objetos Apresentação da Disciplina Prof. Wolley.
Oberdan B. Ferreira Polimorfismo Oberdan B. Ferreira
Estudo dos Conceitos e Paradigmas de Programação
Concorrência e Java RMI
Professora Lucélia Oliveira
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Classes e Objetos em Java.
Filter Design Pattern.
© Ricardo Pereira e Silva
Orientação a Objetos Parte II
Programação Orientada a Objetos - Java
POO II JEAN CARLO MENDES
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Aula Prática 4 Monitoria IP/CC (~if669).
POO II JEAN CARLO MENDES
Interfaces POO Avançado.
Classes Abstratas e Interface
Prof.: Bruno Rafael de Oliveira Rodrigues.  Existe para poder servir de molde para outras classes.  Deve ser declarada tal usando-se a palavra chave.
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Linguagem II Classes Abstratas Interfaces. Davi Pires Revisão Reuso de código Superclasses e subclasses Composição vs. Herança Construtores.
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Classes abstratas São classes das quais não se pode instanciar objetos. São classes das quais não se pode instanciar objetos. Seu objetivo é ser herdada.
2 – Revisão de Programação Orientada a Objetos
2 – Revisão de Programação Orientada a Objetos
4 CONCEITOS BÁSICOS EM POO Dilvan Moreira.  Objetos  Classes  Herança  Polimorfismo Lembrando: 4 Conceitos Básicos.
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
Gerenciamento de Escopo
Implementação Orientada a Objetos – Aula 08 Herança, sobrescrita de métodos e polimorfismo Prof. Danielle Martin Universidade de Mogi das Cruzes
Padrões de Projeto Aula 9 – Padrão Adapter.
Projeto de Arquitetura de Software
Padrões de Projeto 2 – Revisão de Programação Orientada a Objetos.
1. 2 Programação Orientada a Objetos Prof. Maurício Rodrigues de Morais
1 Interface (o termo) » Interface (a palavra reservada): Java estendeu o conceito de interfaces à um nível ainda mais flexível que permite construir entidades.
Herança em Java Curso: Informática Disciplina: Programação Orientada a Objetos Prof. Abrahão Lopes
AULA Mais Herança Curso: Informática (Subseqüente) Disciplina: Programação Orientada a Objetos Prof. Abrahão Lopes
Herança e Polimorfismo Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB  Centro de Informática,
Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB.
Transcrição da apresentação:

LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INTERFACES Prof. Thiago Pereira Rique

A GENDA Aumentando nosso exemplo (banco/empresa) Interfaces

A UMENTANDO NOSSO EXEMPLO ( BANCO / EMPRESA ) Considere a seguinte situação: um Sistema de Controle do Banco pode ser acessado, além de pelos Gerentes, pelos Diretores do banco. Classe Diretor

A UMENTANDO NOSSO EXEMPLO ( BANCO / EMPRESA ) Classe Gerente

A UMENTANDO NOSSO EXEMPLO ( BANCO / EMPRESA ) Perceba que o método autentica de cada tipo de Funcionario pode variar.

A UMENTANDO NOSSO EXEMPLO ( BANCO / EMPRESA ) Considere agora o SistemaInterno e seu controle: É preciso receber um Diretor ou um Gerente como argumento, verificar se o mesmo autentica e colocá-lo no sistema.

A UMENTANDO NOSSO EXEMPLO ( BANCO / EMPRESA ) Não podemos chamar o método autentica, pois nem todo Funcionario possui este método (haveria erro de compilação). O que fazer então?

A UMENTANDO NOSSO EXEMPLO ( BANCO / EMPRESA ) Possibilidade: Não é uma boa saída. Por quê?

A UMENTANDO NOSSO EXEMPLO ( BANCO / EMPRESA ) De acordo com o slide anterior, cada vez que criarmos uma nova classe de Funcionario que é autenticável, teríamos que adicionar um novo método de login no SistemaInterno. Uma solução mais interessante seria criar uma nova classe no meio da árvore de herança.

A UMENTANDO NOSSO EXEMPLO ( BANCO / EMPRESA ) A classe FuncionarioAutenticavel.

A UMENTANDO NOSSO EXEMPLO ( BANCO / EMPRESA ) As classes Gerente e Diretor estenderiam a classe FuncionarioAutenticavel.

A UMENTANDO NOSSO EXEMPLO ( BANCO / EMPRESA ) Perceba que FuncionarioAutenticavel é uma forte candidata a classe abstrata. O método autentica poderia ser abstrato.

A UMENTANDO NOSSO EXEMPLO ( BANCO / EMPRESA ) Vamos a uma situação um pouco mais complexa: precisamos que todos os clientes tenham acesso ao SistemaInterno. O que fazer? Criar outro método login em SistemaInterno (Opção descartada!) Fazer uma herança sem sentido (comum entre os novatos na POO). (Opção descartada!) Cliente estende FuncionarioAutenticavel Cliente definitivamente não é um FuncionarioAutenticavel.

A UMENTANDO NOSSO EXEMPLO ( BANCO / EMPRESA ) Como resolver essa situação?

I NTERFACES Precisamos encontrar uma forma de referenciar Diretor, Gerente e Cliente de uma mesma maneira (fator comum). Toda classe define: O que faz (assinaturas dos métodos) Como faz (corpo dos métodos) Podemos criar um contrato que define tudo o que uma classe deve fazer se quiser ter um determinado status.

I NTERFACES Nosso contrato: Podemos criar este contrato em Java:

I NTERFACES Tal contrato chama-se interface, pois é a maneira pela qual poderemos conversar com um Autenticavel. Quem desejar ser autenticável precisa saber autenticar dado um inteiro e retornando um booleano. Uma interface pode definir uma série de métodos (o que faz), mas nunca conter implementação deles (como faz). Métodos de uma interface são públicos e abstratos sempre!

I NTERFACES Agora o Gerente pode assinar o contrato:

I NTERFACES O implements pode ser lido assim: A classe Gerente se compromete a ser tratada como Autenticavel, sendo obrigada a ter os métodos necessários, definidos neste contrato.

I NTERFACES Agora podemos tratar um Gerente como sendo um Autenticavel (polimorfismo). A utilização mais comum seria receber como argumento no nosso SistemaInterno.

I NTERFACES Agora podemos passar qualquer Autenticavel para o SistemaInterno.

I NTERFACES Quando tivermos mais um funcionário com acesso ao sistema, basta que ele implemente esta interface para se encaixar no sistema.

I NTERFACES E se quisermos que o Fornecedor tenha acesso ao sistema? Quem escreveu o SistemaInterno só precisa saber que Fornecedor é Autenticavel. (desacoplamento)

I NTERFACES Lembrete: A interface define que todos vão saber se autenticar (o que fazer), enquanto a implementação define como exatamente vai ser feito (como fazer).

REFERÊNCIA Apostila caelum-java-objetos-fj11