Implementação

Propaganda
Programação Orientada a Objetos II
Aula - 14
Interfaces
Prof. Pedro Luís Antonelli
Anhanguera Educacional
Uso de Interfaces em Java
Uma interface em Java nada mais é que um conjunto de
declarações de métodos (nome, tipo de retorno, tipos dos
argumentos) desprovidos de implementação.
Cabe ao programador que deseja implementar a interface em
questão, providenciar uma implementação destes métodos na
classe que ele está desenvolvendo.
A declaração “Interface”
Uma Interface tem uma declaração parecida com uma classe, porém a palavra
interface é usada no lugar da palavra class.
public interface Nome_da_Interface {
}
<public> tipo_retorno método_1();
// declaração do método 1
<public> tipo_retorno método_2();
// declaração do método 2
<public> tipo_retorno método_n();
// declaração do método n
Usando a Interface...
A palavra chave implements é utilizada para indicar que uma classe implementa
uma determinada interface.
public class Nome_Classe implements Nome_Interface {
//atributos da classee
public tipo_retorno metodo_1( ) {
// implementação do método1
return ;
}
public tipo_retorno metodo_n ( ) {
// implementação do método_n
return ;
}
}
Construindo um exemplo no NetBeans...
Abrir o NetBeans e criar um aplicativo Java...
Adicionando a interface...
Interface ObjetoGeometrico adicionada...
Adicionando os métodos calculaArea e
calculaPerimetro na interface...
Adicionando a classe Quadrado ao projeto...
Implementando um atributo e os métodos
assessores get e set para esse atributo
Implementando a interface ObjetoGeometrico
na classe Quadrado
Implementando na classe Quadrado, os métodos
declarados na interface ObjetoGeometrico.
Testando a classe e a interface...
Testando a classe e a interface...
Adicionando uma nova classe ao projeto
Implementando a interface ObjetoGeometrico
na classe Retangulo
Implementando na classe Retangulo, os métodos
declarados na interface ObjetoGeometrico.
Testando as classes e a interface...
Interface ??? ou Classe Abstrata ???
O que foi feito com o uso de interface não poderia ser feito com uma classe
abstrata?
Considerações sobre Interfaces
- Uma interface não é considerada uma Classe e sim uma
Entidade;
- Não possui implementação, apenas assinatura, ou seja, apenas a
definição dos seus métodos sem o corpo;
- Todos os métodos são abstratos;
- Seus métodos são implicitamente Públicos e Abstratos;
Considerações sobre Interfaces
- Não há como fazer uma instância de uma Interface e nem como
criar um Construtor;
- Funcionam como um tipo de "contrato", onde são
especificados os atributos, métodos e funções que as classes que
implementem essa interface são obrigadas a implementar;
- Já que Java não suporta Heranças Múltiplas, as Interfaces são
usadas para implementá-las.
Comparação Interface x Classe Abstrata
Característica
Interface
Classe Abstrata
Herança múltipla
Uma classe pode implementar
diversas interfaces
Uma classe pode
herdar somente uma classe
Implementação
Uma interface não pode conter
qualquer tipo de código
Uma classe abstrata pode
fornecer código completo,
ou ter apenas a declaração
de seu esqueleto para ser
posteriormente sobrescrita.
Constantes
Suporte somente constantes do
tipo estática
Pode conter constantes
estáticas e de instância
Velocidade
Lento, requer trabalho extra para
encontrar o método
correspondente na classe atual.
Rápido
Funcionalidade
Se você incluir um novo método
em uma interface você precisa
ajustar todas as implementações
da interface
Se você incluir um novo
atributo em uma classe
abstrata todas as classes
herdarão esse atributo
BIBLIOGRAFIA BÁSICA PADRÃO
SANTOS, Rafael. Introdução à Programação
Orientada a Objetos Usando Java. 1ª ed. Rio de
Janeiro: Campus - Elsevier, 2008.
BIBLIOGRAFIA BÁSICA DA UNIDADE
1) DEITEL, Harvery M.. Java : Como Programar. 6ª ed.
São Paulo: Pearson - Prentice Hall, 2007.
2) SIERRA, Kathy; BATES, Bert. Use a Cabeça! Java. 1ª ed.
Rio de Janeiro: Alta Books, 2005.
BIBLIOGRAFIA COMPLEMETAR
1) BARNES, David J.. PROGRAMAÇÃO ORIENTADA A
OBJETOS COM JAVA : UMA INTRODUÇÃO PRÁTICA
USANDO O BLUE J. 1ª ed. São Paulo: Pearson, 2004.
2) KURNIAWAN, Budi. Java para Web com Servlets, JSP e
EJB. 1ª ed. Rio de Janeiro: Ciência Moderna, 2002.
3) GOMES ASCENCIO, Ana Fernanda; CAMPOS, Edilene
A.V. de. Fundamentos da Programação de Computadores
: Algoritmos, Pascal, C/C++ e Java. 2ª ed. São Paulo:
Pearson - Prentice Hall, 2008.
4) HORSTMANN, Cay S.; CORNELL, Gary. Core Java 2 :
Fundamentos. 7ª ed. Rio de Janeiro: Alta Books, 2005.
5) ANSELMO, Fernando. Tudo Sobre a JSP : Com o
Netbeans em Aplicações Distribuídas. 1ª ed. São Paulo:
VisualBooks, 2005.
Download