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

Documentos relacionados
Atributos e Métodos Estáticos

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

Conceitos Básicos da Programação OO

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

Vejamos o seguinte exemplo public class Exemplo private int testada = 20; public void testapalavra(int testada) JOptionPane.showMessageDialog(null,"Pa

Sobreposição de Métodos

Classe Abstrata e Interface

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

9 Classes Abstractas e Interfaces

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

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

Linguagem de Programação IV Introdução

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }

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

Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos

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. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs

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

Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

Linguagem de Programação II Implementação

Sintaxe Básica de Java Parte 2

Encapsulamento de Dados

Programação Orientada a Objetos II

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

Polimorfismo. O que é polimorfismo?

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

Programação Orientada a Objetos. Aula 1.9 this e static. Prof. Bruno Moreno

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

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

Conceitos de Programação Orientada a Objetos

Computação II Orientação a Objetos

Herança. Fátima L. S. Nunes Luciano A. Digiampietri Norton T. Roman SISTEMAS DE INFORMAÇÃO 1

Ficha Prática 10. António Nestor Ribeiro, Paulo Azevedo, Mário Martins PPIV (LESI) 2005/06

Interfaces POO. Prof. Marcio Delamaro

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Avançando em Java com Polimorfismo. Prof.: Hugo Barros

Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos)

Classes e Objetos. Sintaxe de classe em Java

Universidade Federal de Uberlândia

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

POO29004 Programação Orientada a Objetos

Computação II Orientação a Objetos


Programação Orientada a Objetos

Tratamento de Exceções

POO29004 Programação Orientada a Objetos

Unidade: Classes Abstratas, Polimorfismo, Sobreposição e Interfaces

Interfaces. Classes abstratas que possuem apenas métodos abstratos. Na Interface: Métodos são implicitamente. Campos são implicitamente

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

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

PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO

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

Programação por Objectos. Java

Programação Orientada a Objetos. Métodos e Atributos. Métodos. Métodos. Alexandre César Muniz de Oliveira. Parte III

Sabemos que a classe é responsável por definir a estrutura e o comportamento de seus objetos. Portanto, os objetos são instâncias das classes.

Programação Orientada a Objetos em Java

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli

Sobrecarga. Algoritmos e Programação II. Aula 3 Sobrecarga

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

final class UltimosDiasMeses{ static final int[] DIAS_DO_MES = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; }

Computação II Orientação a Objetos

Polimorfismo. PARTE II: Java e OO. Polimorfismo. Polimorfismo. Polimorfismo. Polimorfismo

Lição 11 Herança, polimorfismo e interfaces

Exercícios sobre repetição. 1. Escreva um método que lê via teclado 8 números e retorna a quantidade de negativos.

Classes e Objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II. Classes. Objetos. Um modelo para a criação de objetos

LISTA DE EXERCÍCIO 7 Interfaces

package especificadores1; public class Alpha { public static void alphapublic(){ System.out.println("Alpha public!"); }

Linguagem de Programação II Implementação

Programação. Orientada a Objetos: Herança. Objetos. Relacionamento entre classes. Análise e Projeto Orientados a. Objetos

Interfaces e Classes Abstratas

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

Computação II Orientação a Objetos

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

Interfaces e Classes Internas

Programação Orientada por Objectos 2007/2008

Linguagem de Programação III

Análise de Programação

Relacionamentos entre objetos

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

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

Programação Orientada a Objetos

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

Classes, Métodos e Propriedades

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

Computação II Orientação a Objetos

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

Computação II - Java - Teste 1.2 Prof. Adriano Joaquim de Oliveira Cruz 2015/04/27

Computação II Orientação a Objetos

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

Instituto Federal de Educação, Ciência e Tecnologia do Ceará IFCE Programa Educacional Brasileiro de Desenvolvimento para ios BEPiD PROVA OBJETIVA

Programação Orientada a Objetos

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

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

Estruturas. Programação I Cap. 4 - Estruturas. Exemplos de estruturas. Estruturas em Java. Tipos x instâncias. Criando instâncias de estruturas

Programação Orientada a Objetos em Java

Transcrição:

Interfaces Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira

Interfaces É utilizada para agrupar conceitos em termos de projeto das classes. É um conjunto de declarações de métodos (nome, tipo de retorno e parâmetros) desprovidos de implementação. Cabe ao programador que deseja implementar uma determinada interface providenciar uma implementação para os métodos definidos na mesma. Programação Orientada a Objeto - Márcio Bueno 2

Interfaces Toda interface pode ser vista como uma classe abstrata, mas a recíproca não é verdadeira. Quando dizemos que uma classe implementa uma interface obrigatoriamente essa classe tem que implementar todos os métodos declarados na interface. Neste sentido, uma interface pode ser vista como sendo um contrato estabelecido entre a classe que implementa a interface (provedora do serviço) e a classe que vai utilizar os métodos definidos na interface (cliente do serviço). Programação Orientada a Objeto - Márcio Bueno 3

Interfaces Uma interface pode ser vista como projeto puro enquanto que uma classe é um misto de projeto e implementação. Uma interface não contém atributos, apenas assinaturas de métodos. Constantes podem ser declaradas na interface para serem compartilhadas entre as classes do sistema. Todos os métodos da interface são públicos. Uma interface em Java só pode ser pública ou default (friendly). Programação Orientada a Objeto - Márcio Bueno 4

Interfaces Pode-se ter atributos, variáveis ou parâmetros de métodos cujo tipo é uma interface. Não se pode instanciar objetos de interfaces, mas sim de classes que implementam as interfaces. Serve como base para o desenvolvimento em camadas (dados, negócio, interface). Programação Orientada a Objeto - Márcio Bueno 5

Exemplos A palavra reservada implements é utilizada para expressar este conceito. Exemplo 1: Programação Orientada a Objeto - Márcio Bueno 6

Exemplos Exemplo 1: public interface IExemplo { public void metodo1(); public void metodon(); public class Exemplo implements IExemplo { Erro de compilação porque a classe Exemplo não implementa todos os métodos definidos na interface IExemplo. Programação Orientada a Objeto - Márcio Bueno 7

Exemplos Exemplo 1: Corrigindo... public class Exemplo implements IExemplo { public void metodo1() { System.out.println("Executando metodo1( )..."); public void metodon() { System.out.println("Executando metodon( )..."); Programação Orientada a Objeto - Márcio Bueno 8

Exemplos Exemplo 1: Aplicação public class AplicacaoIExemplo { public static void main(string[ ] args) { IExemplo ex = new Exemplo( ); ex.metodo1( ); ex.metodon( ); Programação Orientada a Objeto - Márcio Bueno 9

Exemplos Exemplo 1: Adicionando novas implementações da interface Programação Orientada a Objeto - Márcio Bueno 10

Exemplos Exemplo 1: Nova implementação da interface. public class Exemplo2 implements IExemplo { public void metodo1() { System.out.println("metodo1( ) de Exemplo2..."); public void metodon() { System.out.println("metodoN( ) de Exemplo2..."); Programação Orientada a Objeto - Márcio Bueno 11

Exemplos Exemplo 1: Alterando a aplicação para usar a nova implementação da interface: public class AplicacaoIExemplo { public static void main(string[ ] args) { System.out.println( Uso de Interface:"); IExemplo ex = new Exemplo2( ); ex.metodo1( ); ex.metodon( ); Conclusões: Polimorfismo; Vários objetos tratados da mesma forma. Programação Orientada a Objeto - Márcio Bueno 12

Exemplos Exemplo 2: Definição de interface com constante. public interface IExemplo2 { public void metodoa(); public void metodob(); public static final int VALOR = 10; Programação Orientada a Objeto - Márcio Bueno 13

Exercícios Exercício 1: Forma Geométrica Programação Orientada a Objeto - Márcio Bueno 14

Exercícios Exercício 1: Interface Forma Geométrica interface FormaGeometrica { public double area( ); public double comprimento( ); Programação Orientada a Objeto - Márcio Bueno 15

Exercícios Exercício 1: Classe Círculo public class Circulo implements FormaGeometrica { private double raio; private static final double PI = 3.14; // Implementar construtor e métodos get e set public double area( ) { return (PI * raio * raio); public double comprimento( ) { return (2 * PI * raio); Programação Orientada a Objeto - Márcio Bueno 16

Exercícios Exercício 1: Construir a classe Quadrado que implementa a interface FormaGeometrica; Implementar programa de testes que declara duas variáveis do tipo FormaGeometrica e instancia dois objetos um do tipo Circulo e outro do tipo Quadrado. Exibir a área e o comprimento dos objetos instanciados. Programação Orientada a Objeto - Márcio Bueno 17

Exercícios Exercício 2: A classe InfoCliente do modelo de clientes abaixo poderia se tornar uma interface? Programação Orientada a Objeto - Márcio Bueno 18

Exercícios Exercício 3: Programação Orientada a Objeto - Márcio Bueno 19

Exercícios Exercício 3: Implementar uma aplicação que declara uma variável polimórfica do tipo OperacaoMatematica. A partir de dados fornecidos pelo usuário, a aplicação deve realizar uma operação matemática e imprimir o seu resultado. Oferecer para o usuário um menu para a escolha entre as operações matemáticas disponíveis. OBS 1: Não defina a e b como atributos. OBS 2: Implemente um construtor padrão para cada uma das classes. Programação Orientada a Objeto - Márcio Bueno 20

Múltiplas Interfaces Java Permite que uma classe implemente múltiplas interfaces. Exemplo 1: <<Interface>> Impressao imprimedados() <<Interface>> FormaGeometrica area(): double comprimento(): double Circulo raio area(): double comprimento(): double imprimedados() lado Quadrado area(): double comprimento(): double Programação Orientada a Objeto - Márcio Bueno 21

Múltiplas Interface Exemplo 1: Múltiplas interfaces interface Impressao { public void imprimedados( ); public class Circulo implements FormaGeometrica, Impressao {... public void imprimedados( ) { System.out.println( Raio = + raio); Programação Orientada a Objeto - Márcio Bueno 22

Conflito de Nomes Classe implementando múltiplas interfaces <<Interface>> Interface1 Propriedade1 <<Interface>> Interface2 Propriedade1 metodo1( ) metodo2( ) metodo3( ) metodo1( ) metodo2( int i ) metodo3( ): int MinhaClasse? Programação Orientada a Objeto - Márcio Bueno 23

Conflito de Nomes O que acontece quando métodos com o mesmo nome aparecem nas duas interfaces? Caso 1: Sobrecarga Caso 2: A classe implementa um único método que atende as duas interfaces. Caso 3: Métodos com a mesma assinatura, mas diferindo no tipo de retorno, a classe não poderá implementar as duas interfaces. Programação Orientada a Objeto - Márcio Bueno 24

Conflito de Nomes O que acontece quando constantes com o mesmo nome aparecem nas duas interfaces? Usar os nomes qualificados para acessar essas constantes: NomeDaClasse.NOME_CONSTANTE Programação Orientada a Objeto - Márcio Bueno 25

Herança Múltipla de Interface Java permite herança múltipla entre interfaces O problema do conflito de nomes continua sendo resolvido da mesma forma como é resolvido entre classes e interfaces. Programação Orientada a Objeto - Márcio Bueno 26

Hierarquia de Tipos <<Interface>> Interface1 <<Interface>> Interface2 <<Interface>> Interface3 <<Interface>> Interface4 <<Interface>> Interface5 extends (herança e subtipo) <<Interface>> Interface6 Classe1 implements (subtipo) Classe2 extends (herança e subtipo) Programação Orientada a Objeto - Márcio Bueno 27