Interfaces em Java1 Interfaces Prof. Ricardo Linden.

Slides:



Advertisements
Apresentações semelhantes
Modificadores Marco Antonio. Introdução Em todas as linguagens de programação o acesso a classes/métodos deve seguir algumas regras.
Advertisements

PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma.
Herança, Polimorfismo e Classes Abstratas em Java
Orientação a Objetos: Encapsulamento e Classificação
Java: Pacotes e Modificadores de Visibilidade
Modelagem Orientada a Objetos
Java: Pacotes e Modificadores de Visibilidade
Iniciação ao Java – Márcio F. Campos
Polimorfismo e Classes Abstratas Profa
Diagrama de Classes.
Linguagem de Programação II
Linguagem de Programação II
UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS!
Clique para editar o estilo do subtítulo mestre Desenvolvimento web com Java JAVA 5 – Declarações e Controles de Acesso.
Herança e Polimorfismo
Classes e objetos P. O. O. Prof. Grace.
Curso de extensão em Desenvolvimento Web
Concorrência em Java Threads em Java.
Polimorfismo em C#.
Programação Orientada a Objetos com Java
JAVA Orientação a Objetos
GEJAVA IV SCJA – Certificação Sun java associado exame cx
Interfaces.
Oberdan B. Ferreira Polimorfismo Oberdan B. Ferreira
Atributos, Encapsulamento e Interface em Java
Aula 3 CoL, atividade Polimorfismo (late binding) Modificador final Modificador abstract Interfaces Herança múltipla Atribuição, Construtores, Destrutores,
Programação I Aula 2 (Métodos)
Classes, Objetos, Atributos e Métodos JAVA
if669 - Introdução à Programação
Programação Orientada à Objetos
INTRODUÇÃO À ORIENTAÇÃO A OBJETOS EM JAVA
Herança em POO Importante:
Aula prática 14 Orientação a Objetos – C++ Parte 2
Programação Orientada a Objetos - Java
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Programação Orientada à Objetos
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Prof. Gilberto Irajá Müller
Introdução às Java Threads
Java Kickstart, day 2 Semelhanças com linguagem C.
Classes Abstratas P. O. O. Prof. Ângela e Grace.
Aula Prática 4 Monitoria IP/CC (~if669).
Polimorfismo.
POO II JEAN CARLO MENDES
1 Marcio de Carvalho Victorino JAVA. 2 Declaração de Atributos [ ] [transient] [volatile] [static] [final] ; controle de acesso –public, package (default),
Interfaces POO Avançado.
Classes Abstratas e Interface
Certificação Marco Antonio. Introdução A compreensão desse capítulo é muito importante pois trata de um assunto essencial em qualquer linguagem de programação,
Classes Abstratas e Interfaces GX – Aula05 1.
Herança Modelagem e Programação Orientada a Objetos
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Bruno Inojosa MCP .NET Framework
Linguagem II Classes Abstratas Interfaces. Davi Pires Revisão Reuso de código Superclasses e subclasses Composição vs. Herança Construtores.
Modificadores Programação II.
Herança.
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.
Módulo II Capítulo 1: Orientação a Objetos
Relacionamentos UML e Polimorfismo
Implementação Orientada a Objetos – Aula 08 Herança, sobrescrita de métodos e polimorfismo Prof. Danielle Martin Universidade de Mogi das Cruzes
Linguagem Java Programação II.
Java Como Programar, 8/E Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1.
1. 2 Programação Orientada a Objetos Prof. Maurício Rodrigues de Morais
Classes Abstratas e Interface. 2 Classe Abstrata  Uma classe abstrata serve apenas como modelo para uma classe concreta (classe que comumente usamos);
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
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
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.
Jean Carlo mendes
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

Interfaces em Java1 Interfaces Prof. Ricardo Linden

Interfaces em Java2 Da mesma maneira que duas classes são relacionadas se herdam da mesma superclasse, elas também são relacionadas se implementam a mesma interface. Interfaces podem então ser usadas para modelar responsabilidades equivalentes de classes que não possuem nenhum relacionamento ou similaridade. Modela um relacionamento do tipo acts-a Exemplo: carros e brinquedos são bem diferentes, mas ambos podem implementar o método vender(). Interfaces

Interfaces em Java3 Interfaces Interface: Mecanismo que objetos não relacionados entre si usam para interagir entre si Consiste em uma série de métodos abstratos e constantes listados para que outras classes as implementem. Uma interface não pode ser instanciada Óbvio, dado que possui métodos abstratos!

Interfaces em Java4 Interfaces Interface: Mecanismo javanês para fingir que temos herança múltipla Ao invés de forçar relacionamento que não existem naturalmente entre as classes que fazem parte do sistema, cria-se um protocolo de comunicação Este protocolo é implementado em Java como uma interface contendo um conjunto de constantes e declarações (sem implementações) de métodos É como se fosse um contrato formal entre duas classes na qual uma delas se compromete a implementar certos métodos e ter certos atributos.

Interfaces em Java5 Interfaces Interface: Quando uma classe implementa um interface, ela concorda em implementar todos os métodos declarados pela interface Não pode faltar nenhum dos métodos Todos os métodos de uma interface possuem visibilidade pública por default Além dos métodos da interface, pode haver outros métodos dentro da classe Inclusive implementação de outras interfaces!

Interfaces em Java6 Interfaces Sintaticamente, uma interface é uma coleção de declarações de métodos sem implementação Uma interface pode também declarar constantes Declaração:

Interfaces em Java7 Interfaces Interfaces são (sintaticamente) semelhantes a classes abstratas Diferenças:

Interfaces em Java8 Interfaces Modificadores: public protected : interfaces internas apenas private : interfaces internas apenas abstract : redundante e obsoleto static : interfaces internas apenas strictfp : expressões envolvendo float e double são consideradas strictfp

Interfaces em Java9 Interfaces Membros: Campos: apenas constantes: public static final Importante: uma interface não pode conter variáveis. Métodos: public e abstract Importante : uma interface não pode ter métodos concretos

Interfaces em Java10 Interfaces Implementação: Semelhante à sintaxe usada em derivação, mas usa a palavra reservada implements Diferentemente do que ocorre com derivação, pode- se implementar mais de uma interface; neste caso, as interfaces são separadas por vírgulas Outra diferença: interfaces não crescem Classes herdam tudo de suas superclasses, inclusive as interfaces que elas implementam.

Interfaces em Java11 Interfaces Exemplo: class Carro implements Revenda { double ObtemPreço() {... }... }

Interfaces em Java12 Uma classe pode implementar várias interfaces ao mesmo tempo. Em contrapartida, só pode herdar de uma única classe. Uma classe pode estender uma classe e implementar várias interfaces ao mesmo tempo. Exemplo class Carro extends Veiculo implements Revenda { double ObtemPreço() {... }... } Interfaces

Interfaces em Java13 Interfaces podem ser usadas como tipos, como as classes. Métodos que aceitam parâmetros do tipo de uma interface: Não se preocupam com a implementação dos métodos da interface, mas exigem que estes sejam implementados. Não se preocupam com a classe efetiva do objeto. O problema é que só se pode usar o comportamento das interfaces, nunca o das classes. Interfaces

Interfaces em Java14 Exemplo: Interfaces class Carro implements Revenda { double ObtemPreço() {... } void Ligar(){...} } class Boneca implements Revenda { double ObtemPreço() {... } void Brincar() {...} } class X { double metodo1(Revenda Param1) {... }... }

Interfaces em Java15 Sejam: Boneca B1; Carro C1; X X1; Logo, podemos chamar: X1.metodo1(B1); X1.metodo1(C1); Interfaces Não podemos fazer referência a Brincar ou Ligar, mas sim a ObtemPreco

Interfaces em Java16 Assim como classes, as interfaces podem extender o comportamento de outras interfaces. Para tanto, basta usar extends, como nas classes Ao contrário das classes, elas podem extender múltiplas interfaces Para tanto, basta separar os nomes por vírgulas. Exemplo: public interface Component extends Locatable, Sizeable; Interfaces

Interfaces em Java17 Posso implementar duas interfaces que contêm um método se tiver o mesmo nome: Se tiver mesma assinatura e desejamos mesmo comportamento, só precisa implementar uma vez. Se tiver assinaturas diferentes, tenho que implementar duas vezes. Se tiver mesma assinatura e desejamos comportamentos distintos, temos que renomear um dos dois métodos. Interfaces

Interfaces em Java18 Interfaces úteis A interface Comparable pede a implementação do método abstrato de assinatura: public abstract int compareTo(Comparable b) Este método deve retornar: 1 se o objeto corrente for maior que b 0 se os objetos forem iguais -1 se o objeto corrente for menor que b Graça : usar o método sort da classe Arrays.

Interfaces em Java19 Interfaces úteis Exemplo : seja a classe XYZ que implementa a interface Comparable. Temos então: public class XYZTest { XYZ[] a=new XYZ[20]; : Arrays.sort(a); : }

Interfaces em Java20 Interfaces úteis Cloneable: pede a implementação do método abstrato de assinatura: public Object clone(); Dentro da classe Object (superclasse de todas as classes) já existe uma implementação de clone que copia o objeto corrente bit a bit. Só implementamos o clone se acharmos que esta cópia não é boa o suficiente.

Interfaces em Java21 Interfaces úteis Note que o método clone retorna um elemento do tipo Object. Para armazenar em um objeto da classe em questão preciso fazer um typecast explícito. Ex.: ClasseXYZ z=(ClasseXYZ) x.clone(); É da classe ClasseXYZ!