Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho

Documentos relacionados
PADRONIZAÇÃO 10. INTERFACES PADRONIZAÇÃO CONTRATOS

Definição. Em POO, a abstração é o processo de esconder os detalhes de implementação de uma aplicação.

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho

Classe Abstrata e Interface

Interfaces e Classes Abstratas

Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes -

Programação Orientada a Objetos

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces

9 Classes Abstractas e Interfaces

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs

Aula 10 POO 1 Classes Abstratas. Profa. Elaine Faria UFU

Linguagem de Programação III

Java para Desktop. Programação Orientada à Objetos 2 JSE

Interfaces. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno.

Classes e Objetos. Sintaxe de classe em Java

AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos

TÉCNICAS DE ORIENTAÇÃO A OBJETOS

p Imagine que um Sistema de Controle do Banco pode ser acessado, além dos Gerentes, pelos Diretores do Banco

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

PROGRAMAÇÃO ORIENTADA A OBJETOS II -TÉCNICAS DE OO. Prof. Angelo Augusto Frozza, M.Sc.

Aula 04 Introdução à Programação Orientada à Objetos

PCS LABORATÓRIO DE PROGRAMAÇÃO ORIENTADA A OBJETOS PARA A ENGENHARIA ELÉTRICA

Conceitos de Programação Orientada a Objetos

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

LEIC-T LERC MEIC-T 2011/2012 1º Semestre Programação com Objetos 2012/01/07 11h00m 3/10

Programação Orientada a Objetos II Java Décima primeira aula

Introdução. Programação Orientada a Objetos (POO) João Paulo Q. dos Santos

Linguagens de Programação Aula 12

UNIVERSIDADE PAULISTA - UNIP ICET INSTITUTO DE CIÊNCIAS EXATAS E TECNOLÓGIA

Programação Orientada a Objetos

Java First-Tier: Aplicações. Sobrecarga. Orientação a Objetos em Java (II) Sobrecarga de Construtores: Exemplo de Declaração

PROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO. Projeto de Programas PPR0001

Programação Java (nível intermediário) 4. Polimorfismo

1 Introdução e Conceitos básicos

Usuários. Interface com Usuários. Programa Aplicativo. Interfaces de Programação. Sistema Operacional

Linguagem de Programação IV Introdução

Programação Orientada a Objetos

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho

Orientação a Objetos Interfaces

Orientação a objetos. Objetos ou Instâncias I

nome = n; cargo = c; salario = s; public void print() { System.out.println(nome cargo salario); public void aumento( double fator){

C O N S T R U T O R E S E S O B R E C A R G A P R O F. M E. H É L I O E S P E R I D I Ã O

Programação Orientada a Objetos

3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks

Computação II Orientação a Objetos

Visibilidade e Encapsulamento

POO29004 Programação Orientada a Objetos

Introdução à Orientação a Objetos em Java

Curso de PHP. - Início 22 de agosto - Término 20 de outubro. -Aulas: segunda e quinta-feira -Horário:18h às 20h. -Carga horária do curso: 40h

Programação Orientada a Objetos II

Computação II Orientação a Objetos

Linguagem de Programação I Apresentação da Disciplina


Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Engenharia de Software. Aula 10 Representação dos Conceitos de Orientação a Objetos. Prof. Me. Rogério Ferreira

Programação Orientada a Objetos Flávio de Oliveira Silva 144

Diagrama de Classes. Régis Patrick Silva Simão. Régis Simão Diagrama de Classes 1/42

Herança Tiago Eugenio de Melo

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento

Modelo do Mundo Real. Abstração. Interpretação

Computação II Orientação a Objetos

PROGRAMAÇÃO ORIENTADA A

p Imagine que um Sistema de Controle do Banco pode ser acessado, além dos Gerentes, pelos Diretores do Banco

Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto

Linguagem de programação Programação Orientada a objetos

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

Avançando em Java com

Rafael B. Pereira (

Java Standard Edition (JSE)

Programação Orientada a Objetos. SANTOS, Rafael (PLT) e Guia de Estudo SCJP. SIERRA, Kathy e BATES, Bert

Introdução à Programação. Encapsulamento e Herança

[Linguagem de Programação 3] [Aula 01] [Gustavo Yoshio Maruyama]

Introdução ao Java. Prof. Herbert Rausch Fernandes

Programação Orientada à Objetos com java. Prof. Dr. Alexandre L. Rangel

Polimorfismo em Java TM. por Jorge H C Fernandes CESAR-DI-UFPE Recife, 1999

Programação Orientada a Objetos JAVA - NETBEANS

Programação para Internet I

Introdução à Programação para Dispositivos Móveis

Java - Herança e Interface

POO UML e Outros Conceitos. Prof. Vicente Paulo de Camargo

Aula 5 POO 1 Encapsulamento. Profa. Elaine Faria UFU

Nome do Aluno: Matrícula: Turma: Data: 08/04/2013

Computação II Orientação a Objetos

Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz /05/13. Questão: Total Pontos: Gráu:

Polimorfismo e Ligação Dinâmica. Alcides Pamplona Polimorfismo e Ligação Dinâmica

Programação Java. - Herança e Polimorfismo - Marco Fagundes Marco Fagundes -

LÓGICA DE PROGRAMAÇÃO (JAVA) CLASSES E OBJETOS. Professor Carlos Muniz

Programação Orientada a Objetos

POO29004 Programação Orientada a Objetos

Programação Orientada a Objetos

Aula 06. Prof. Diemesleno Souza Carvalho

Transcrição:

Programação Orientada a Objetos Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br

Programação Orientada a Objetos Na aula passada, vimos: Classes Abstratas

Programação Orientada a Objetos Na aula de hoje, veremos: Interfaces

Padronização Interfaces

Padronização No dia a dia, estamos acostumados a utilizar aparelhos que dependem de energia elétrica. Esses aparelhos possuem um plugue que deve ser conectado a uma tomada para obter a energia necessária.

Padronização Diversos empresas fabricaram aparelhos elétricos com plugues. Analogamente, diversas empresas fabricam tomadas elétricas.

Padronização Suponha que cada empresa decida por conta própria o formato dos pulgões ou das tomadas que fabricará. Teríamos uma infinidade de tipos de pulgões e tomadas que tornaria a utilização dos aparelhos elétricos uma experiência extremamente desagradável.

Padronização Inclusive, essa falta de padrão pode gerar problemas de segurança aos usuários. Os formatos dos pulgões ou das tomadas pode aumentar o risco de uma pessoa tomar um choque elétrico.

Padronização Interfaces

Padronização Com o intuito de facilitar a utilização dos consumidores e aumentar a segurança dos mesmos, o governo através dos órgãos responsáveis estabelece padrões para os pulgões e tomadas.

Padronização Esses padrões estabelecem restrições que devem ser respeitadas pelos fabricantes dos aparelhos e das tomadas. Em diversos contextos, padronizar pode trazer grandes benefícios. Inclusive, no desenvolvimento de aplicações. Veremos agora como a ideia de padronização pode ser contextualizada nos conceitos de orientação a objetos.

Contratos Interfaces

Contratos Em um sistema orientado a objetos, os objetos interagem entre si através de chamadas de métodos (trocas de mensagens).

Contratos Podemos dizer que os objetos se encaixam" através dos métodos públicos assim como um plugue se encaixa em uma tomada através dos pinos.

Contratos Para os objetos de uma aplicação conversarem" entre si mais facilmente é importante padronizar o conjunto de métodos oferecidos por eles. Assim como os plugues encaixam nas tomadas mais facilmente graças aos padrões definidos pelo governo.

Contratos Um padrão é definido através de especificações ou contratos. Nas aplicações orientadas a objetos, podemos criar um contrato" para definir um determinado conjunto de métodos que deve ser implementado pelas classes que assinarem" este contrato.

Contratos Em orientação a objetos, um contrato é chamado de interface. Uma interface é composta basicamente por métodos abstratos.

No sistema do banco, podemos definir uma interface (contrato) para padronizar as assinaturas dos métodos oferecidos pelos objetos que representam as contas do banco.

No sistema do banco, podemos definir uma interface (contrato) para padronizar as assinaturas dos métodos oferecidos pelos objetos que representam as contas do banco.

No sistema do banco, podemos definir uma interface (contrato) para padronizar as assinaturas dos métodos oferecidos pelos objetos que representam as contas do banco.

Os métodos de uma inter face não possuem corpo (implementação) pois serão implementados nas classes vinculadas a esta interface.

TODOS os métodos de uma interface devem ser públicos e abstratos. Os modificadores public e abstract são opcionais.

As classes que definem os diversos tipos de contas que existem no banco devem implementar (assinar) a interface Conta.

As classes que definem os diversos tipos de contas que existem no banco devem implementar (assinar) a interface Conta.

As classes que definem os diversos tipos de contas que existem no banco devem implementar (assinar) a interface Conta.

As classes que definem os diversos tipos de contas que existem no banco devem implementar (assinar) a interface Conta.

As classes concretas que implementam uma interface são obrigadas a possuir uma implementação para cada método declarado na interface. Caso contrário, ocorrerá um erro de compilação.

A primeira vantagem de utilizar uma interface é a padronização das assinaturas dos métodos oferecidos por um determinado conjunto de classes. A segunda vantagem é garantir que determinadas classes implementem certos métodos.

Se uma classe implementa uma interface, podemos aplicar a ideia do polimorfismo assim como quando aplicamos herança. Desta forma, outra vantagem da utilização de interfaces é o ganho do polimorfismo.

Interface e Herança

Interface e Herança As vantagens e desvantagens entre interface e herança, provavelmente, é um dos temas mais discutidos nos blogs, fóruns e revistas que abordam desenvolvimento de software orientado a objetos.

Interface e Herança Muitas vezes, os debates sobre esse assunto se estendem mais do que a própria importância desse tópico. Muitas pessoas se posicionam de forma radical defendendo a utilização de interfaces ao invés de herança em qualquer situação.

Interface e Herança Normalmente, esses debates são direcionados na análise do que é melhor para manutenção das aplicações: utilizar interfaces ou aplicar herança.

Interface e Herança A grosso modo, priorizar a utilização de interfaces permite que alterações pontuais em determinados trechos do código fonte sejam feitas mais facilmente pois diminui as ocorrências de efeitos colaterais indesejados no resto da aplicação.

Interface e Herança Por outro lado, priorizar a utilização de herança pode diminuir a quantidade de código escrito no início do desenvolvimento de um projeto.

Interface e Herança Em Java não existe herança múltipla, e muitas vezes, interfaces são apresentadas como uma alternativa para obter um grau maior de polimorfismo.

Interface e Herança Implemente a classe Funcionario com os atributos: - nome (String); - datacontratacao (LocalDate); - salario (double); getters, setters e construtores.

Interface e Herança Implemente a classe Cliente com os atributos: - nome (String); - telefone (String); - codigo (int); Faça com que toda vez que um cliente for instanciado o código seja incrementado. getters, setters e construtores.

Interface e Herança Crie a interface Acesso com os métodos: void login(); void logout();

Interface e Herança Implemente a classe Segurança que extenda Funcionario;

Interface e Herança Implemente a classe PessoaFisica que extenda Cliente;

Interface e Herança Implemente a classe Gerente que extenda Funcionario e implemente a interface Acesso;

Interface e Herança Implemente a classe Empresa que extenda Cliente e implemente a interface Acesso;

Interface e Herança Crie um programa e faça testes com as classes criadas.

Programação Orientada a Objetos Dúvidas?

Programação Orientada a Objetos Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br