Vous êtes sur la page 1sur 21

COM220

Aula 11: Interfaces e Pacotes

Prof. Larcio Baldochi

Interfaces Java

Definem um conjunto de mtodos que uma


classe dever implementar

Coleo de mtodos abstratos e constantes

Separam o comportamento de um objeto de sua


implementao concreta
Dessa forma, a interface age como um
contrato, o qual define explicitamente quais
mtodos uma classe deve obrigatoriamente
implementar

Interface X Classe

Interface

No pode ser instanciada


Pode ser implementada por diversas classes

Polimorfismo

Classe

Pode implementar diversas interfaces


Quando implementa uma interface pode
implementar tambm outros mtodos

Interface

Mtodos em uma interface so sempre pblicos


e abstratos

public abstract

Dados em uma interface so sempre constantes


pblicas

public static final

Interface
Definio

Uma interface uma coleo de constantes e


mtodos abstratos, no fornecendo nenhuma
implementao

Interface

Para utilizar uma interface

Implementa-se a mesma em uma classe


Dentro da classe, deve-se escrever o cdigo para
cada um dos mtodos declarados na interface
implementada

Interface
Exemplo

Interface
Exemplo

Interface

Resumindo

Uma interface define um conjunto de mtodos


que outras classes devem implementar, mas no
define como esses mtodos devem ser
implementados

Interface

Java no suporta herana mltipla

Classes s podem ter um ancestral direto

Existem, porm, situaes nas quais pode ser


necessrio herdar caractersticas de mais de
uma superclasse simultaneamente

Nesse caso, pode-se lanar mo das interfaces,


j que possvel implementar diversas
interfaces simultaneamente

public Classe implements Interf1, Interf2, Interf3 { ...

Interface

As interfaces so tambm usadas para


implementar mecanismos de callbacks
Callbacks

Forma de programar eventos na linguagem Java

Teremos um laboratrio sobre interfaces e


callbacks aps aprendermos a utilizar a API
Swing

Exerccio 1

Considere o diagrama UML mostrado a seguir

Exerccio

Considere o diagrama UML abaixo

Exerccio
Entrega: 15/09 (aula de hoje)
a) Crie uma interface de nome Motorizado onde so
declarados os mtodos void ligarMotor() e void
abastecer(int numLitros).
b) Implemente a interface Motorizado nas classes Aviao e
Carro.
c) Crie uma interface de nome Conduzivel onde
declarado o mtodo void curvar(float angulo).
d) Implemente a interface Conduzivel nas classes Aviao,
Carro e Bicicleta.
e) Escreva um programa de teste que crie dois ArrayList.
O primeiro (A1) deve conter instncias de objetos
motorizados. O segundo (A2) deve conter instncias de
objetos conduzveis. Processe A1 ligando o motor das
instncias. Processe A2 curvando as instncias ( o
mtodo curvar deve imprimir o ngulo da curva ).

Pacotes

A construo de qualquer programa Java


requer a utilizao de bibliotecas prexistentes na API Java
Cada classe e interface pertence a um pacote
especfico

Ex: JOptionPane: javax.swing.*;

Devemos, nas nossas aplicaes, utilizar a


mesma abordagem

Usando pacotes conseguimos gerenciar melhor a


complexidade dos componentes das nossas
aplicaes

Pacotes

Facilitam tambm o reuso de cdigo

Podemos importar apenas uma classe de um


pacote, ou o pacote como um todo
Ex:

import javax.swing.JOptionPane // s uma classe


import javax.swing.* // o pacote todo

Pacotes

Estrutura

Os pacotes possuem uma definio fsica


representada por uma estrutura hierrquica
atravs de diretrios no sistema operacional

Voltando ao exemplo da aula 9


info

academico
disciplina -> Disciplina
pessoa -> (Pessoa, Professor e Aluno)
geral -> Util

Pacotes

Para declarar um pacote utilizamos a palavra reservada package antes da


definio da classe
package info.geral;

public class Util {

public static final String MASCULINO = "M";


public static final String FEMININO = "F";
public static final int MIN_IDADE = 10;
public static final int MAX_IDADE = 120;
public static final String GRADUACAO = "Graduao";
public static final String ESPECIALIZACAO = "Especializao";
public static final String MESTRADO = "Mestrado";
public static final String DOUTORADO = "Doutorado";

public static final String CC = "Cincias da Computao";


public static final String SI = "Sistemas de Informao";

Definio do pacote

Pacotes

Cada arquivo fonte (.java) deve estar no mesmo


diretrio identificado na linha de definio do
package (ex: c:\...\src\info\geral para o caso da
classe Util);
Para o projeto elaborado na aula 9 teramos:

c:\...\src\info\academico\disciplina\Disciplina.java
c:\...\src\info\academico\pessoa\Pessoa.java
c:\...\src\info\academico\pessoa\Aluno.java
c:\...\src\info\academico\pessoa\Professor.java
c:\...\src\info\geral\Util.java
c:\...\src\ExemploClasse.java

Pacotes

Agora para que seja possvel a compilao devemos


realizar os imports correspondentes
Na classe ExemploClasse deve-se importar os
pacotes e classes a seguir

import info.geral.Util;
import info.academico.disciplina.*;
import info.academico.pessoa.*;

Exerccio 2

Altere os arquivos fonte do exemplo utilizado


na aula 9

No esquea de salvar cada arquivo fonte dentro


do diretrio adequado
Exemplo:

c:\...\src\info\academico\disciplina\Disciplina.java
c:\...\src\info\academico\pessoa\Pessoa.java
c:\...\src\info\academico\pessoa\Aluno.java
c:\...\src\info\academico\pessoa\Professor.java
c:\...\src\info\geral\Util.java
c:\...\src\ExemploClasse.java

Vous aimerez peut-être aussi