avisosariane/ach2001/ach2001-aula26... · 2009-06-11 · • encapsulamento: • conceito da poo...
TRANSCRIPT
SISTEMAS DEINFORMAÇÃO
11
11SISTEMAS DE
INFORMAÇÃO1
11
1SISTEMAS DEINFORMAÇÃO
11SISTEMAS DE
INFORMAÇÃO1
11
1SISTEMAS DEINFORMAÇÃO
11
11SISTEMAS DE
INFORMAÇÃO1
1SISTEMAS DEINFORMAÇÃO
11
1
SISTEMAS DEINFORMAÇÃO
11
11 1SISTEMAS DEINFORMAÇÃO
11
11SISTEMAS DE
INFORMAÇÃO1
1SISTEMAS DEINFORMAÇÃO
11
11SISTEMAS DE
INFORMAÇÃO1
11
1SISTEMAS DEINFORMAÇÃO
11SISTEMAS DE
INFORMAÇÃO1
11
1SISTEMAS DEINFORMAÇÃO
111SISTEMAS DE
INFORMAÇÃO1
11
1SISTEMAS DEINFORMAÇÃO
11SISTEMAS DE
INFORMAÇÃO1
11
1SISTEMAS DEINFORMAÇÃO
11
11SISTEMAS DE
INFORMAÇÃO1
1SISTEMAS DEINFORMAÇÃO
11
11SISTEMAS DE
INFORMAÇÃO1
11
Avisos
• Seminários Interdisciplinares em SI– Próximo: dia 16/06 às 15h (Profa. Fátima) :
Processamento de Imagens e Realidade Virtual para aplicações em saúde
– Importante para quem pensa em fazer Iniciação Científica
–
• Lembre-se: para conseguir bolsa de IC e estágio supervisionado conta notas e reprovações
Processamento de Imagens e Realidade Virtual para
aplicações em saúde
SISTEMAS DEINFORMAÇÃO
22
22SISTEMAS DE
INFORMAÇÃO2
22
2SISTEMAS DEINFORMAÇÃO
22SISTEMAS DE
INFORMAÇÃO2
22
2SISTEMAS DEINFORMAÇÃO
22
22SISTEMAS DE
INFORMAÇÃO2
2SISTEMAS DEINFORMAÇÃO
22
2
SISTEMAS DEINFORMAÇÃO
22
22 2SISTEMAS DEINFORMAÇÃO
22
22SISTEMAS DE
INFORMAÇÃO2
2SISTEMAS DEINFORMAÇÃO
22
22SISTEMAS DE
INFORMAÇÃO2
22
2SISTEMAS DEINFORMAÇÃO
22SISTEMAS DE
INFORMAÇÃO2
22
2SISTEMAS DEINFORMAÇÃO
222SISTEMAS DE
INFORMAÇÃO2
22
2SISTEMAS DEINFORMAÇÃO
22SISTEMAS DE
INFORMAÇÃO2
22
2SISTEMAS DEINFORMAÇÃO
22
22SISTEMAS DE
INFORMAÇÃO2
2SISTEMAS DEINFORMAÇÃO
22
22SISTEMAS DE
INFORMAÇÃO2
22
EP 3• Classes Produto, Serviço, Veículo, Acessório
• É para usar herança
• O EP era para ser maior
– Ficou menor para vocês fazerem as listas de exercícios!
• Para entender melhor o que fazer no EP 3 (e como), vamos ver o que outras classes seriam implementadas e como elas usariam a biblioteca
• Bom exercício para se fazer!!!
SISTEMAS DEINFORMAÇÃO
33
33SISTEMAS DE
INFORMAÇÃO3
33
3SISTEMAS DEINFORMAÇÃO
33SISTEMAS DE
INFORMAÇÃO3
33
3SISTEMAS DEINFORMAÇÃO
33
33SISTEMAS DE
INFORMAÇÃO3
3SISTEMAS DEINFORMAÇÃO
33
3
SISTEMAS DEINFORMAÇÃO
33
33 3SISTEMAS DEINFORMAÇÃO
33
33SISTEMAS DE
INFORMAÇÃO3
3SISTEMAS DEINFORMAÇÃO
33
33SISTEMAS DE
INFORMAÇÃO3
33
3SISTEMAS DEINFORMAÇÃO
33SISTEMAS DE
INFORMAÇÃO3
33
3SISTEMAS DEINFORMAÇÃO
333SISTEMAS DE
INFORMAÇÃO3
33
3SISTEMAS DEINFORMAÇÃO
33SISTEMAS DE
INFORMAÇÃO3
33
3SISTEMAS DEINFORMAÇÃO
33
33SISTEMAS DE
INFORMAÇÃO3
3SISTEMAS DEINFORMAÇÃO
33
33SISTEMAS DE
INFORMAÇÃO3
33
EP 3
• SistemaDeVendas: deveria ter um vetor de objetos Produtos a serem cadastrados. Deveria implementar pelo menos os seguintes métodos:
–● void cadastraProduto(Produto prod): insere o produto no
vetor de Produtos● void ordenaProdutos(): ordena o vetor de produtos pelo código
do produto● Produto buscaProduto(int codigo): Busca (USANDO BUSCA
BINÁRIA) e retorna um objeto Produto com código igual a codigo. Se o produto não for cadastrado, emite mensagem de erro.
SISTEMAS DEINFORMAÇÃO
44
44SISTEMAS DE
INFORMAÇÃO4
44
4SISTEMAS DEINFORMAÇÃO
44SISTEMAS DE
INFORMAÇÃO4
44
4SISTEMAS DEINFORMAÇÃO
44
44SISTEMAS DE
INFORMAÇÃO4
4SISTEMAS DEINFORMAÇÃO
44
4
SISTEMAS DEINFORMAÇÃO
44
44 4SISTEMAS DEINFORMAÇÃO
44
44SISTEMAS DE
INFORMAÇÃO4
4SISTEMAS DEINFORMAÇÃO
44
44SISTEMAS DE
INFORMAÇÃO4
44
4SISTEMAS DEINFORMAÇÃO
44SISTEMAS DE
INFORMAÇÃO4
44
4SISTEMAS DEINFORMAÇÃO
444SISTEMAS DE
INFORMAÇÃO4
44
4SISTEMAS DEINFORMAÇÃO
44SISTEMAS DE
INFORMAÇÃO4
44
4SISTEMAS DEINFORMAÇÃO
44
44SISTEMAS DE
INFORMAÇÃO4
4SISTEMAS DEINFORMAÇÃO
44
44SISTEMAS DE
INFORMAÇÃO4
44
EP 3
• ItemDeVenda: modelaria itens que comporão uma venda. Um item de venda possui um Produto e uma quantidade vendida do produto.
– ItemDeVenda(int codigo, int quantidade): construtor
– calculaValor(): calcula o valor do item (isto é, quantidade vezes o preço do produto).
SISTEMAS DEINFORMAÇÃO
55
55SISTEMAS DE
INFORMAÇÃO5
55
5SISTEMAS DEINFORMAÇÃO
55SISTEMAS DE
INFORMAÇÃO5
55
5SISTEMAS DEINFORMAÇÃO
55
55SISTEMAS DE
INFORMAÇÃO5
5SISTEMAS DEINFORMAÇÃO
55
5
SISTEMAS DEINFORMAÇÃO
55
55 5SISTEMAS DEINFORMAÇÃO
55
55SISTEMAS DE
INFORMAÇÃO5
5SISTEMAS DEINFORMAÇÃO
55
55SISTEMAS DE
INFORMAÇÃO5
55
5SISTEMAS DEINFORMAÇÃO
55SISTEMAS DE
INFORMAÇÃO5
55
5SISTEMAS DEINFORMAÇÃO
555SISTEMAS DE
INFORMAÇÃO5
55
5SISTEMAS DEINFORMAÇÃO
55SISTEMAS DE
INFORMAÇÃO5
55
5SISTEMAS DEINFORMAÇÃO
55
55SISTEMAS DE
INFORMAÇÃO5
5SISTEMAS DEINFORMAÇÃO
55
55SISTEMAS DE
INFORMAÇÃO5
55
EP 3• Venda: Esta classe modela uma venda realizada, que
é composta por vários itens de venda, a data da venda e o nome do cliente.
»• Venda(String cliente, int dia, int mês, int ano): construtor
»• insereItemDeVenda(int codigo, int quantidade): insere um item de venda.
»• calculaValorTotal(): calcula o valor total da venda.
»• imprimeNota(): imprime algo semelhante a uma nota fiscal da venda. Cada
venda deve receber um número (que será o número da nota), que é incrementado sequencialmente a cada nova venda. Formato de impressão:
SISTEMAS DEINFORMAÇÃO
66
66SISTEMAS DE
INFORMAÇÃO6
66
6SISTEMAS DEINFORMAÇÃO
66SISTEMAS DE
INFORMAÇÃO6
66
6SISTEMAS DEINFORMAÇÃO
66
66SISTEMAS DE
INFORMAÇÃO6
6SISTEMAS DEINFORMAÇÃO
66
6
SISTEMAS DEINFORMAÇÃO
66
66 6SISTEMAS DEINFORMAÇÃO
66
66SISTEMAS DE
INFORMAÇÃO6
6SISTEMAS DEINFORMAÇÃO
66
66SISTEMAS DE
INFORMAÇÃO6
66
6SISTEMAS DEINFORMAÇÃO
66SISTEMAS DE
INFORMAÇÃO6
66
6SISTEMAS DEINFORMAÇÃO
666SISTEMAS DE
INFORMAÇÃO6
66
6SISTEMAS DEINFORMAÇÃO
66SISTEMAS DE
INFORMAÇÃO6
66
6SISTEMAS DEINFORMAÇÃO
66
66SISTEMAS DE
INFORMAÇÃO6
6SISTEMAS DEINFORMAÇÃO
66
66SISTEMAS DE
INFORMAÇÃO6
66
EP 3 – O que seria o formato de impressão da nota
:Nota Número numeroDaVenda:Cliente cliente
:Data / /dia mes anoItens:Código - Descrição - Preço Unitário – Quantidade - Preço Total
codigoDoProduto – descrição – preçoUnitario – qtde - preçoTotalcodigoDoProduto – descrição – preçoUnitario – qtde - preçoTotalcodigoDoProduto – descrição – preçoUnitario - qtde - preçoTotalcodigoDoProduto – descrição – preçoUnitario – qtde - preçoTotal
:Valor Total valorTotalDaVenda
SISTEMAS DEINFORMAÇÃO
77
77SISTEMAS DE
INFORMAÇÃO7
77
7SISTEMAS DEINFORMAÇÃO
77SISTEMAS DE
INFORMAÇÃO7
77
7SISTEMAS DEINFORMAÇÃO
77
77SISTEMAS DE
INFORMAÇÃO7
7SISTEMAS DEINFORMAÇÃO
77
7
SISTEMAS DEINFORMAÇÃO
77
77 7SISTEMAS DEINFORMAÇÃO
77
77SISTEMAS DE
INFORMAÇÃO7
7SISTEMAS DEINFORMAÇÃO
77
77SISTEMAS DE
INFORMAÇÃO7
77
7SISTEMAS DEINFORMAÇÃO
77SISTEMAS DE
INFORMAÇÃO7
77
7SISTEMAS DEINFORMAÇÃO
777SISTEMAS DE
INFORMAÇÃO7
77
7SISTEMAS DEINFORMAÇÃO
77SISTEMAS DE
INFORMAÇÃO7
77
7SISTEMAS DEINFORMAÇÃO
77
77SISTEMAS DE
INFORMAÇÃO7
7SISTEMAS DEINFORMAÇÃO
77
77SISTEMAS DE
INFORMAÇÃO7
77
Relembrando herança
SISTEMAS DEINFORMAÇÃO
88
88SISTEMAS DE
INFORMAÇÃO8
88
8SISTEMAS DEINFORMAÇÃO
88SISTEMAS DE
INFORMAÇÃO8
88
8SISTEMAS DEINFORMAÇÃO
88
88SISTEMAS DE
INFORMAÇÃO8
8SISTEMAS DEINFORMAÇÃO
88
8
SISTEMAS DEINFORMAÇÃO
88
88 8SISTEMAS DEINFORMAÇÃO
88
88SISTEMAS DE
INFORMAÇÃO8
8SISTEMAS DEINFORMAÇÃO
88
88SISTEMAS DE
INFORMAÇÃO8
88
8SISTEMAS DEINFORMAÇÃO
88SISTEMAS DE
INFORMAÇÃO8
88
8SISTEMAS DEINFORMAÇÃO
88
Hierarquia de Classes
É um tipo
de
SISTEMAS DEINFORMAÇÃO
99
99SISTEMAS DE
INFORMAÇÃO9
99
9SISTEMAS DEINFORMAÇÃO
99SISTEMAS DE
INFORMAÇÃO9
99
9SISTEMAS DEINFORMAÇÃO
99
99SISTEMAS DE
INFORMAÇÃO9
9SISTEMAS DEINFORMAÇÃO
99
9
SISTEMAS DEINFORMAÇÃO
99
99 9SISTEMAS DEINFORMAÇÃO
99
99SISTEMAS DE
INFORMAÇÃO9
9SISTEMAS DEINFORMAÇÃO
99
99SISTEMAS DE
INFORMAÇÃO9
99
9SISTEMAS DEINFORMAÇÃO
99SISTEMAS DE
INFORMAÇÃO9
99
9SISTEMAS DEINFORMAÇÃO
99
Pessoa
Professorprivate int _anoDeAdmissao;private String _departamento;
private int _anoObtencaoDoutorado;private String _instituicaoDoutorado;
private int _anoDeIngresso;private String _curso;
private long _nrUsp;private String _rg;private long _cpf;
private String _nome;private char _sexo;
// 5 pares de mét. de acessovoid imprimeDados();
// 2 pares de mét. de acessovoid imprimeDados();
ProfessorDoutor
// 2 pares de mét. de acessovoid imprimeDados();
Aluno
// 2 pares de mét. de acessovoid imprimeDados();
public void imprimeDados(){
System.out.println(“Nome: “ + _nome);
System.out.println(“Nr USP: “ + _nrUsp);
System.out.println(“CPF: “ + _cpf);
System.out.println(“RG: “ + _rg);
System.out.println(“Sexo: “ + _sexo);
}
public void imprimeDados(){
super.imprimeDados();
System.out.println(“Ano de admissão: “ + _anoDeAdmissao);
System.out.println(“Departamento: “ + _departamento);
}
public void imprimeDados(){
super.imprimeDados();
System.out.println(“Ano de obtenção do título de Doutor: “ + _anoObtencaoDoutorado);
System.out.println(“Instituição do Doutorado: “ + _instituicaoDoutorado);
}
SISTEMAS DEINFORMAÇÃO
1010
1010SISTEMAS DE
INFORMAÇÃO10
1010
10SISTEMAS DEINFORMAÇÃO
1010SISTEMAS DE
INFORMAÇÃO10
1010
10SISTEMAS DEINFORMAÇÃO
1010
1010SISTEMAS DE
INFORMAÇÃO10
10SISTEMAS DEINFORMAÇÃO
1010
10
SISTEMAS DEINFORMAÇÃO
1010
1010 10SISTEMAS DEINFORMAÇÃO
1010
1010SISTEMAS DE
INFORMAÇÃO10
10SISTEMAS DEINFORMAÇÃO
1010
1010SISTEMAS DE
INFORMAÇÃO10
1010
10SISTEMAS DEINFORMAÇÃO
1010SISTEMAS DE
INFORMAÇÃO10
1010
10SISTEMAS DEINFORMAÇÃO
1010
Exemploclass Pessoa{
(...)void quemEVoce() { System.out.println(“Sou uma pessoa”); }
}
class Aluno extends Pessoa{(...)
void quemEVoce() { System.out.println(“Sou um aluno”); }
}
class Professor extends Pessoa{
(...)void quemEVoce() { System.out.println(“Sou um professor”); }
}
class ProfessorDoutor extends Professor{(...)void quemEVoce() { System.out.println(“Sou um professor doutor”); }
}
Pessoa p1 = new Pessoa(); p1.quemEVoce(); // Sou uma pessoa
Aluno p2 = new Aluno(); p2.quemEVoce(); // Sou um aluno
Professor p3 = new Professor(); p3.quemEVoce(); // Sou um professor
ProfessorDoutor p4 = new ProfessorDoutor(); p4.quemEVoce(); // Sou um professor doutor
SISTEMAS DEINFORMAÇÃO
1111
1111SISTEMAS DE
INFORMAÇÃO11
1111
11SISTEMAS DEINFORMAÇÃO
1111SISTEMAS DE
INFORMAÇÃO11
1111
11SISTEMAS DEINFORMAÇÃO
1111
1111SISTEMAS DE
INFORMAÇÃO11
11SISTEMAS DEINFORMAÇÃO
1111
11
SISTEMAS DEINFORMAÇÃO
1111
1111 11SISTEMAS DEINFORMAÇÃO
1111
1111SISTEMAS DE
INFORMAÇÃO11
11SISTEMAS DEINFORMAÇÃO
1111
1111SISTEMAS DE
INFORMAÇÃO11
1111
11SISTEMAS DEINFORMAÇÃO
1111SISTEMAS DE
INFORMAÇÃO11
1111
11SISTEMAS DEINFORMAÇÃO
1111
Exemploclass Pessoa{
(...)void quemEVoce() { System.out.println(“Sou uma pessoa”); }
}
class Aluno extends Pessoa{(...)
void quemEVoce() { System.out.println(“Sou um aluno”); }
}
class Professor extends Pessoa{
(...)void quemEVoce() { System.out.println(“Sou um professor”); }
}
class ProfessorDoutor extends Professor{(...)void quemEVoce() { System.out.println(“Sou um professor doutor”); }
}
Pessoa p1 = new Pessoa(); p1.quemEVoce(); // Sou uma pessoa
Aluno p2 = new Aluno(); p2.quemEVoce(); // Sou um aluno
Professor p3 = new Professor(); p3.quemEVoce(); // Sou um professor
ProfessorDoutor p4 = new ProfessorDoutor(); p4.quemEVoce(); // Sou um professor doutor
Em Java só é possível herdar de UMA classe!
SISTEMAS DEINFORMAÇÃO
1212
1212SISTEMAS DE
INFORMAÇÃO12
1212
12SISTEMAS DEINFORMAÇÃO
1212SISTEMAS DE
INFORMAÇÃO12
1212
12SISTEMAS DEINFORMAÇÃO
1212
1212SISTEMAS DE
INFORMAÇÃO12
12SISTEMAS DEINFORMAÇÃO
1212
12
SISTEMAS DEINFORMAÇÃO
1212
1212 12SISTEMAS DEINFORMAÇÃO
1212
1212SISTEMAS DE
INFORMAÇÃO12
12SISTEMAS DEINFORMAÇÃO
1212
1212SISTEMAS DE
INFORMAÇÃO12
1212
12SISTEMAS DEINFORMAÇÃO
1212SISTEMAS DE
INFORMAÇÃO12
1212
12SISTEMAS DEINFORMAÇÃO
1212
class ComunidadeAcademica
{Pessoa [] comunidade = new Pessoa [5000];
int nrPessoas = 0;void inserePessoa(Pessoa p){
comunidade[nrPessoas] = p;
nrPessoas++;}Pessoa buscaPessoa (int nrUsp){
int i = 0;
while (i < nrPessoas){
if (comunidade[i].obtemNrUsp() == nrUsp)
return comunidade[i];
i++;
}
System.out.println("Pessoa não encontrada");
return null;
}void imprimeDados(){
for (int i=0; i<nrPessoas; i++)
comunidade[i].imprimeDados();
}
}
ComunidadeAcademica usp = new ComunidadeAcademica();
usp.inserePessoa(new Aluno(55, ... , “SI”));
usp.inserePessoa(new Professor(51, ..., “EACH”));
usp.inserePessoa(ProfessorDoutor(67, ....., “USP”));
usp.imprimeDados();
imprimeDados de que classe que será
chamado?
SISTEMAS DEINFORMAÇÃO
1313
1313SISTEMAS DE
INFORMAÇÃO13
1313
13SISTEMAS DEINFORMAÇÃO
1313SISTEMAS DE
INFORMAÇÃO13
1313
13SISTEMAS DEINFORMAÇÃO
1313
1313SISTEMAS DE
INFORMAÇÃO13
13SISTEMAS DEINFORMAÇÃO
1313
13
SISTEMAS DEINFORMAÇÃO
1313
1313 13SISTEMAS DEINFORMAÇÃO
1313
1313SISTEMAS DE
INFORMAÇÃO13
13SISTEMAS DEINFORMAÇÃO
1313
1313SISTEMAS DE
INFORMAÇÃO13
1313
13SISTEMAS DEINFORMAÇÃO
1313SISTEMAS DE
INFORMAÇÃO13
1313
13SISTEMAS DEINFORMAÇÃO
1313
class ComunidadeAcademica
{Pessoa [] comunidade = new Pessoa [5000];
int nrPessoas = 0;void inserePessoa(Pessoa p){
comunidade[nrPessoas] = p;
nrPessoas++;}Pessoa buscaPessoa (int nrUsp){
int i = 0;
while (i < nrPessoas){
if (comunidade[i].obtemNrUsp() == nrUsp)
return comunidade[i];
i++;
}
System.out.println("Pessoa não encontrada");
return null;
}void imprimeDados(){
for (int i=0; i<nrPessoas; i++)
comunidade[i].imprimeDados();
}
}
ComunidadeAcademica usp = new ComunidadeAcademica();
usp.inserePessoa(new Aluno(55, ... , “SI”));
usp.inserePessoa(new Professor(51, ..., “EACH”));
usp.inserePessoa(ProfessorDoutor(67, ....., “USP”));
usp.imprimeDados();
imprimeDados de que classe que será
chamado?
Da classe que recebeu a chamada do new
SISTEMAS DEINFORMAÇÃO
1414
1414SISTEMAS DE
INFORMAÇÃO14
1414
14SISTEMAS DEINFORMAÇÃO
1414SISTEMAS DE
INFORMAÇÃO14
1414
14SISTEMAS DEINFORMAÇÃO
1414
1414SISTEMAS DE
INFORMAÇÃO14
14SISTEMAS DEINFORMAÇÃO
1414
14
SISTEMAS DEINFORMAÇÃO
1414
1414 14SISTEMAS DEINFORMAÇÃO
1414
1414SISTEMAS DE
INFORMAÇÃO14
14SISTEMAS DEINFORMAÇÃO
1414
1414SISTEMAS DE
INFORMAÇÃO14
1414
14SISTEMAS DEINFORMAÇÃO
1414SISTEMAS DE
INFORMAÇÃO14
1414
14SISTEMAS DEINFORMAÇÃO
1414
class ComunidadeAcademica
{Pessoa [] comunidade = new Pessoa [5000];
int nrPessoas = 0;void inserePessoa(Pessoa p){
comunidade[nrPessoas] = p;
nrPessoas++;}Pessoa buscaPessoa (int nrUsp){
int i = 0;
while (i < nrPessoas){
if (comunidade[i].obtemNrUsp() == nrUsp)
return comunidade[i];
i++;
}
System.out.println("Pessoa não encontrada");
return null;
}void imprimeDados(){
for (int i=0; i<nrPessoas; i++)
comunidade[i].imprimeDados();
}
}
ComunidadeAcademica usp = new ComunidadeAcademica();
usp.inserePessoa(new Aluno(55, ... , “SI”));
usp.inserePessoa(new Professor(51, ..., “EACH”));
usp.inserePessoa(ProfessorDoutor(67, ....., “USP”));
usp.imprimeDados();
Associação DINÂMICA a
métodos!!!
SISTEMAS DEINFORMAÇÃO
1515
1515SISTEMAS DE
INFORMAÇÃO15
1515
15SISTEMAS DEINFORMAÇÃO
1515SISTEMAS DE
INFORMAÇÃO15
1515
15SISTEMAS DEINFORMAÇÃO
1515
1515SISTEMAS DE
INFORMAÇÃO15
15SISTEMAS DEINFORMAÇÃO
1515
15
SISTEMAS DEINFORMAÇÃO
1515
1515 15SISTEMAS DEINFORMAÇÃO
1515
1515SISTEMAS DE
INFORMAÇÃO15
15SISTEMAS DEINFORMAÇÃO
1515
1515SISTEMAS DE
INFORMAÇÃO15
1515
15SISTEMAS DEINFORMAÇÃO
1515SISTEMAS DE
INFORMAÇÃO15
1515
15SISTEMAS DEINFORMAÇÃO
1515
Controle de acesso
SISTEMAS DEINFORMAÇÃO
1616
1616SISTEMAS DE
INFORMAÇÃO16
1616
16SISTEMAS DEINFORMAÇÃO
1616SISTEMAS DE
INFORMAÇÃO16
1616
16SISTEMAS DEINFORMAÇÃO
1616
1616SISTEMAS DE
INFORMAÇÃO16
16SISTEMAS DEINFORMAÇÃO
1616
16
SISTEMAS DEINFORMAÇÃO
1616
1616 16SISTEMAS DEINFORMAÇÃO
1616
1616SISTEMAS DE
INFORMAÇÃO16
16SISTEMAS DEINFORMAÇÃO
1616
1616SISTEMAS DE
INFORMAÇÃO16
1616
16SISTEMAS DEINFORMAÇÃO
1616SISTEMAS DE
INFORMAÇÃO16
1616
16SISTEMAS DEINFORMAÇÃO
161616SISTEMAS DE
INFORMAÇÃO16
1616
16SISTEMAS DEINFORMAÇÃO
1616SISTEMAS DE
INFORMAÇÃO16
1616
16SISTEMAS DEINFORMAÇÃO
1616
1616SISTEMAS DE
INFORMAÇÃO16
16SISTEMAS DEINFORMAÇÃO
1616
1616SISTEMAS DE
INFORMAÇÃO16
1616
Professoras:Ariane Machado LimaFátima L. S. Nunes
Interfaces
SISTEMAS DEINFORMAÇÃO
1717
1717SISTEMAS DE
INFORMAÇÃO17
1717
17SISTEMAS DEINFORMAÇÃO
1717SISTEMAS DE
INFORMAÇÃO17
1717
17SISTEMAS DEINFORMAÇÃO
1717
1717SISTEMAS DE
INFORMAÇÃO17
17SISTEMAS DEINFORMAÇÃO
1717
17
SISTEMAS DEINFORMAÇÃO
1717
1717 17SISTEMAS DEINFORMAÇÃO
1717
1717SISTEMAS DE
INFORMAÇÃO17
17SISTEMAS DEINFORMAÇÃO
1717
1717SISTEMAS DE
INFORMAÇÃO17
1717
17SISTEMAS DEINFORMAÇÃO
1717SISTEMAS DE
INFORMAÇÃO17
1717
17SISTEMAS DEINFORMAÇÃO
171717SISTEMAS DE
INFORMAÇÃO17
1717
17SISTEMAS DEINFORMAÇÃO
1717SISTEMAS DE
INFORMAÇÃO17
1717
17SISTEMAS DEINFORMAÇÃO
1717
1717SISTEMAS DE
INFORMAÇÃO17
17SISTEMAS DEINFORMAÇÃO
1717
1717SISTEMAS DE
INFORMAÇÃO17
1717
Interface
• O que significa?
•
SISTEMAS DEINFORMAÇÃO
1818
1818SISTEMAS DE
INFORMAÇÃO18
1818
18SISTEMAS DEINFORMAÇÃO
1818SISTEMAS DE
INFORMAÇÃO18
1818
18SISTEMAS DEINFORMAÇÃO
1818
1818SISTEMAS DE
INFORMAÇÃO18
18SISTEMAS DEINFORMAÇÃO
1818
18
SISTEMAS DEINFORMAÇÃO
1818
1818 18SISTEMAS DEINFORMAÇÃO
1818
1818SISTEMAS DE
INFORMAÇÃO18
18SISTEMAS DEINFORMAÇÃO
1818
1818SISTEMAS DE
INFORMAÇÃO18
1818
18SISTEMAS DEINFORMAÇÃO
1818SISTEMAS DE
INFORMAÇÃO18
1818
18SISTEMAS DEINFORMAÇÃO
181818SISTEMAS DE
INFORMAÇÃO18
1818
18SISTEMAS DEINFORMAÇÃO
1818SISTEMAS DE
INFORMAÇÃO18
1818
18SISTEMAS DEINFORMAÇÃO
1818
1818SISTEMAS DE
INFORMAÇÃO18
18SISTEMAS DEINFORMAÇÃO
1818
1818SISTEMAS DE
INFORMAÇÃO18
1818
Interface
• Definição:
• local onde dois sistemas independentes se
encontram.
• Ex: interface gráfica
SISTEMAS DEINFORMAÇÃO
1919
1919SISTEMAS DE
INFORMAÇÃO19
1919
19SISTEMAS DEINFORMAÇÃO
1919SISTEMAS DE
INFORMAÇÃO19
1919
19SISTEMAS DEINFORMAÇÃO
1919
1919SISTEMAS DE
INFORMAÇÃO19
19SISTEMAS DEINFORMAÇÃO
1919
19
SISTEMAS DEINFORMAÇÃO
1919
1919 19SISTEMAS DEINFORMAÇÃO
1919
1919SISTEMAS DE
INFORMAÇÃO19
19SISTEMAS DEINFORMAÇÃO
1919
1919SISTEMAS DE
INFORMAÇÃO19
1919
19SISTEMAS DEINFORMAÇÃO
1919SISTEMAS DE
INFORMAÇÃO19
1919
19SISTEMAS DEINFORMAÇÃO
191919SISTEMAS DE
INFORMAÇÃO19
1919
19SISTEMAS DEINFORMAÇÃO
1919SISTEMAS DE
INFORMAÇÃO19
1919
19SISTEMAS DEINFORMAÇÃO
1919
1919SISTEMAS DE
INFORMAÇÃO19
19SISTEMAS DEINFORMAÇÃO
1919
1919SISTEMAS DE
INFORMAÇÃO19
1919
Interface
SISTEMAS DEINFORMAÇÃO
2020
2020SISTEMAS DE
INFORMAÇÃO20
2020
20SISTEMAS DEINFORMAÇÃO
2020SISTEMAS DE
INFORMAÇÃO20
2020
20SISTEMAS DEINFORMAÇÃO
2020
2020SISTEMAS DE
INFORMAÇÃO20
20SISTEMAS DEINFORMAÇÃO
2020
20
SISTEMAS DEINFORMAÇÃO
2020
2020 20SISTEMAS DEINFORMAÇÃO
2020
2020SISTEMAS DE
INFORMAÇÃO20
20SISTEMAS DEINFORMAÇÃO
2020
2020SISTEMAS DE
INFORMAÇÃO20
2020
20SISTEMAS DEINFORMAÇÃO
2020SISTEMAS DE
INFORMAÇÃO20
2020
20SISTEMAS DEINFORMAÇÃO
202020SISTEMAS DE
INFORMAÇÃO20
2020
20SISTEMAS DEINFORMAÇÃO
2020SISTEMAS DE
INFORMAÇÃO20
2020
20SISTEMAS DEINFORMAÇÃO
2020
2020SISTEMAS DE
INFORMAÇÃO20
20SISTEMAS DEINFORMAÇÃO
2020
2020SISTEMAS DE
INFORMAÇÃO20
2020
Interface
• O que é API (Application Programming Interface) ?
• .... pensem na API do Java....
SISTEMAS DEINFORMAÇÃO
2121
2121SISTEMAS DE
INFORMAÇÃO21
2121
21SISTEMAS DEINFORMAÇÃO
2121SISTEMAS DE
INFORMAÇÃO21
2121
21SISTEMAS DEINFORMAÇÃO
2121
2121SISTEMAS DE
INFORMAÇÃO21
21SISTEMAS DEINFORMAÇÃO
2121
21
SISTEMAS DEINFORMAÇÃO
2121
2121 21SISTEMAS DEINFORMAÇÃO
2121
2121SISTEMAS DE
INFORMAÇÃO21
21SISTEMAS DEINFORMAÇÃO
2121
2121SISTEMAS DE
INFORMAÇÃO21
2121
21SISTEMAS DEINFORMAÇÃO
2121SISTEMAS DE
INFORMAÇÃO21
2121
21SISTEMAS DEINFORMAÇÃO
212121SISTEMAS DE
INFORMAÇÃO21
2121
21SISTEMAS DEINFORMAÇÃO
2121SISTEMAS DE
INFORMAÇÃO21
2121
21SISTEMAS DEINFORMAÇÃO
2121
2121SISTEMAS DE
INFORMAÇÃO21
21SISTEMAS DEINFORMAÇÃO
2121
2121SISTEMAS DE
INFORMAÇÃO21
2121
Interface
• Encapsulamento ???
SISTEMAS DEINFORMAÇÃO
2222
2222SISTEMAS DE
INFORMAÇÃO22
2222
22SISTEMAS DEINFORMAÇÃO
2222SISTEMAS DE
INFORMAÇÃO22
2222
22SISTEMAS DEINFORMAÇÃO
2222
2222SISTEMAS DE
INFORMAÇÃO22
22SISTEMAS DEINFORMAÇÃO
2222
22
SISTEMAS DEINFORMAÇÃO
2222
2222 22SISTEMAS DEINFORMAÇÃO
2222
2222SISTEMAS DE
INFORMAÇÃO22
22SISTEMAS DEINFORMAÇÃO
2222
2222SISTEMAS DE
INFORMAÇÃO22
2222
22SISTEMAS DEINFORMAÇÃO
2222SISTEMAS DE
INFORMAÇÃO22
2222
22SISTEMAS DEINFORMAÇÃO
222222SISTEMAS DE
INFORMAÇÃO22
2222
22SISTEMAS DEINFORMAÇÃO
2222SISTEMAS DE
INFORMAÇÃO22
2222
22SISTEMAS DEINFORMAÇÃO
2222
2222SISTEMAS DE
INFORMAÇÃO22
22SISTEMAS DEINFORMAÇÃO
2222
2222SISTEMAS DE
INFORMAÇÃO22
2222
Interface• Encapsulamento:
• Conceito da POO que permite esconder do usuário os atributos e a implementação dos métodos da classe.
• Conhecendo apenas a interface de uma classe, podemos usar objetos da mesma sem conhecer detalhes de implementação.
• Interface = métodos disponíveis + suas respectivas assinaturas.
SISTEMAS DEINFORMAÇÃO
2323
2323SISTEMAS DE
INFORMAÇÃO23
2323
23SISTEMAS DEINFORMAÇÃO
2323SISTEMAS DE
INFORMAÇÃO23
2323
23SISTEMAS DEINFORMAÇÃO
2323
2323SISTEMAS DE
INFORMAÇÃO23
23SISTEMAS DEINFORMAÇÃO
2323
23
SISTEMAS DEINFORMAÇÃO
2323
2323 23SISTEMAS DEINFORMAÇÃO
2323
2323SISTEMAS DE
INFORMAÇÃO23
23SISTEMAS DEINFORMAÇÃO
2323
2323SISTEMAS DE
INFORMAÇÃO23
2323
23SISTEMAS DEINFORMAÇÃO
2323SISTEMAS DE
INFORMAÇÃO23
2323
23SISTEMAS DEINFORMAÇÃO
232323SISTEMAS DE
INFORMAÇÃO23
2323
23SISTEMAS DEINFORMAÇÃO
2323SISTEMAS DE
INFORMAÇÃO23
2323
23SISTEMAS DEINFORMAÇÃO
2323
2323SISTEMAS DE
INFORMAÇÃO23
23SISTEMAS DEINFORMAÇÃO
2323
2323SISTEMAS DE
INFORMAÇÃO23
2323
Interface• Interface:
• Útil também quando queremos ter uma classe, mas não implementá-la.
• Muito interessante na fase de especificação de um Sistema.
• Ex: eu poderia definir uma interface de Pessoa (isto é, métodos que uma Pessoa deveria saber executar) sem ter que implementá-la
• Implementação ficaria por conta das “subclasses”
SISTEMAS DEINFORMAÇÃO
2424
2424SISTEMAS DE
INFORMAÇÃO24
2424
24SISTEMAS DEINFORMAÇÃO
2424SISTEMAS DE
INFORMAÇÃO24
2424
24SISTEMAS DEINFORMAÇÃO
2424
2424SISTEMAS DE
INFORMAÇÃO24
24SISTEMAS DEINFORMAÇÃO
2424
24
SISTEMAS DEINFORMAÇÃO
2424
2424 24SISTEMAS DEINFORMAÇÃO
2424
2424SISTEMAS DE
INFORMAÇÃO24
24SISTEMAS DEINFORMAÇÃO
2424
2424SISTEMAS DE
INFORMAÇÃO24
2424
24SISTEMAS DEINFORMAÇÃO
2424SISTEMAS DE
INFORMAÇÃO24
2424
24SISTEMAS DEINFORMAÇÃO
2424
class ComunidadeAcademica
{Pessoa [] comunidade = new Pessoa [5000];
int nrPessoas = 0;void inserePessoa(Pessoa p){
comunidade[nrPessoas] = p;
nrPessoas++;}Pessoa buscaPessoa (int nrUsp){
int i = 0;
while (i < nrPessoas){
if (comunidade[i].obtemNrUsp() == nrUsp)
return comunidade[i];
i++;
}
System.out.println("Pessoa não encontrada");
return null;
}void imprimeDados(){
for (int i=0; i<nrPessoas; i++)
comunidade[i].imprimeDados();
}
}
Neste exemplo, quemétodos Pessoa deveria saber executar?
SISTEMAS DEINFORMAÇÃO
2525
2525SISTEMAS DE
INFORMAÇÃO25
2525
25SISTEMAS DEINFORMAÇÃO
2525SISTEMAS DE
INFORMAÇÃO25
2525
25SISTEMAS DEINFORMAÇÃO
2525
2525SISTEMAS DE
INFORMAÇÃO25
25SISTEMAS DEINFORMAÇÃO
2525
25
SISTEMAS DEINFORMAÇÃO
2525
2525 25SISTEMAS DEINFORMAÇÃO
2525
2525SISTEMAS DE
INFORMAÇÃO25
25SISTEMAS DEINFORMAÇÃO
2525
2525SISTEMAS DE
INFORMAÇÃO25
2525
25SISTEMAS DEINFORMAÇÃO
2525SISTEMAS DE
INFORMAÇÃO25
2525
25SISTEMAS DEINFORMAÇÃO
2525
class ComunidadeAcademica
{Pessoa [] comunidade = new Pessoa [5000];
int nrPessoas = 0;void inserePessoa(Pessoa p){
comunidade[nrPessoas] = p;
nrPessoas++;}Pessoa buscaPessoa (int nrUsp){
int i = 0;
while (i < nrPessoas){
if (comunidade[i].obtemNrUsp() == nrUsp)
return comunidade[i];
i++;
}
System.out.println("Pessoa não encontrada");
return null;
}void imprimeDados(){
for (int i=0; i<nrPessoas; i++)
comunidade[i].imprimeDados();
}
}
Neste exemplo, quemétodos Pessoa deveria saber executar?
SISTEMAS DEINFORMAÇÃO
2626
2626SISTEMAS DE
INFORMAÇÃO26
2626
26SISTEMAS DEINFORMAÇÃO
2626SISTEMAS DE
INFORMAÇÃO26
2626
26SISTEMAS DEINFORMAÇÃO
2626
2626SISTEMAS DE
INFORMAÇÃO26
26SISTEMAS DEINFORMAÇÃO
2626
26
SISTEMAS DEINFORMAÇÃO
2626
2626 26SISTEMAS DEINFORMAÇÃO
2626
2626SISTEMAS DE
INFORMAÇÃO26
26SISTEMAS DEINFORMAÇÃO
2626
2626SISTEMAS DE
INFORMAÇÃO26
2626
26SISTEMAS DEINFORMAÇÃO
2626SISTEMAS DE
INFORMAÇÃO26
2626
26SISTEMAS DEINFORMAÇÃO
262626SISTEMAS DE
INFORMAÇÃO26
2626
26SISTEMAS DEINFORMAÇÃO
2626SISTEMAS DE
INFORMAÇÃO26
2626
26SISTEMAS DEINFORMAÇÃO
2626
2626SISTEMAS DE
INFORMAÇÃO26
26SISTEMAS DEINFORMAÇÃO
2626
2626SISTEMAS DE
INFORMAÇÃO26
2626
Interface• Um exemplo: criação de um zoológico virtual
• Vários tipos de animais
• Mensagens para cada animal:
• nasça()
• passeiePelaTela()
• durma()
SISTEMAS DEINFORMAÇÃO
2727
2727SISTEMAS DE
INFORMAÇÃO27
2727
27SISTEMAS DEINFORMAÇÃO
2727SISTEMAS DE
INFORMAÇÃO27
2727
27SISTEMAS DEINFORMAÇÃO
2727
2727SISTEMAS DE
INFORMAÇÃO27
27SISTEMAS DEINFORMAÇÃO
2727
27
SISTEMAS DEINFORMAÇÃO
2727
2727 27SISTEMAS DEINFORMAÇÃO
2727
2727SISTEMAS DE
INFORMAÇÃO27
27SISTEMAS DEINFORMAÇÃO
2727
2727SISTEMAS DE
INFORMAÇÃO27
2727
27SISTEMAS DEINFORMAÇÃO
2727SISTEMAS DE
INFORMAÇÃO27
2727
27SISTEMAS DEINFORMAÇÃO
272727SISTEMAS DE
INFORMAÇÃO27
2727
27SISTEMAS DEINFORMAÇÃO
2727SISTEMAS DE
INFORMAÇÃO27
2727
27SISTEMAS DEINFORMAÇÃO
2727
2727SISTEMAS DE
INFORMAÇÃO27
27SISTEMAS DEINFORMAÇÃO
2727
2727SISTEMAS DE
INFORMAÇÃO27
2727
Interface• Um exemplo: criação de um zoológico virtual
• Mas você não conhece os animais !!!
• Como um morcego nasce?
• Como uma zebra dorme?
• Como um pato anda?
SISTEMAS DEINFORMAÇÃO
2828
2828SISTEMAS DE
INFORMAÇÃO28
2828
28SISTEMAS DEINFORMAÇÃO
2828SISTEMAS DE
INFORMAÇÃO28
2828
28SISTEMAS DEINFORMAÇÃO
2828
2828SISTEMAS DE
INFORMAÇÃO28
28SISTEMAS DEINFORMAÇÃO
2828
28
SISTEMAS DEINFORMAÇÃO
2828
2828 28SISTEMAS DEINFORMAÇÃO
2828
2828SISTEMAS DE
INFORMAÇÃO28
28SISTEMAS DEINFORMAÇÃO
2828
2828SISTEMAS DE
INFORMAÇÃO28
2828
28SISTEMAS DEINFORMAÇÃO
2828SISTEMAS DE
INFORMAÇÃO28
2828
28SISTEMAS DEINFORMAÇÃO
282828SISTEMAS DE
INFORMAÇÃO28
2828
28SISTEMAS DEINFORMAÇÃO
2828SISTEMAS DE
INFORMAÇÃO28
2828
28SISTEMAS DEINFORMAÇÃO
2828
2828SISTEMAS DE
INFORMAÇÃO28
28SISTEMAS DEINFORMAÇÃO
2828
2828SISTEMAS DE
INFORMAÇÃO28
2828
Interface• Um exemplo: criação de um zoológico virtual
• Como fazer ???
SISTEMAS DEINFORMAÇÃO
2929
2929SISTEMAS DE
INFORMAÇÃO29
2929
29SISTEMAS DEINFORMAÇÃO
2929SISTEMAS DE
INFORMAÇÃO29
2929
29SISTEMAS DEINFORMAÇÃO
2929
2929SISTEMAS DE
INFORMAÇÃO29
29SISTEMAS DEINFORMAÇÃO
2929
29
SISTEMAS DEINFORMAÇÃO
2929
2929 29SISTEMAS DEINFORMAÇÃO
2929
2929SISTEMAS DE
INFORMAÇÃO29
29SISTEMAS DEINFORMAÇÃO
2929
2929SISTEMAS DE
INFORMAÇÃO29
2929
29SISTEMAS DEINFORMAÇÃO
2929SISTEMAS DE
INFORMAÇÃO29
2929
29SISTEMAS DEINFORMAÇÃO
292929SISTEMAS DE
INFORMAÇÃO29
2929
29SISTEMAS DEINFORMAÇÃO
2929SISTEMAS DE
INFORMAÇÃO29
2929
29SISTEMAS DEINFORMAÇÃO
2929
2929SISTEMAS DE
INFORMAÇÃO29
29SISTEMAS DEINFORMAÇÃO
2929
2929SISTEMAS DE
INFORMAÇÃO29
2929
Interface• Um exemplo: criação de um zoológico virtual
• Como fazer ???
• Pedir para alguém que conhece os animais implementar as classes necessárias. Exemplo: Zebra, Morcego e Pato
• Só que eu preciso ter um padrão para todos os animais...
• Então...
SISTEMAS DEINFORMAÇÃO
3030
3030SISTEMAS DE
INFORMAÇÃO30
3030
30SISTEMAS DEINFORMAÇÃO
3030SISTEMAS DE
INFORMAÇÃO30
3030
30SISTEMAS DEINFORMAÇÃO
3030
3030SISTEMAS DE
INFORMAÇÃO30
30SISTEMAS DEINFORMAÇÃO
3030
30
SISTEMAS DEINFORMAÇÃO
3030
3030 30SISTEMAS DEINFORMAÇÃO
3030
3030SISTEMAS DE
INFORMAÇÃO30
30SISTEMAS DEINFORMAÇÃO
3030
3030SISTEMAS DE
INFORMAÇÃO30
3030
30SISTEMAS DEINFORMAÇÃO
3030SISTEMAS DE
INFORMAÇÃO30
3030
30SISTEMAS DEINFORMAÇÃO
303030SISTEMAS DE
INFORMAÇÃO30
3030
30SISTEMAS DEINFORMAÇÃO
3030SISTEMAS DE
INFORMAÇÃO30
3030
30SISTEMAS DEINFORMAÇÃO
3030
3030SISTEMAS DE
INFORMAÇÃO30
30SISTEMAS DEINFORMAÇÃO
3030
3030SISTEMAS DE
INFORMAÇÃO30
3030
Interface• Um exemplo: criação de um zoológico virtual
interface Animal
{
void nasça();
void passeiePelaTela();
void durma();
double peso();
}
SISTEMAS DEINFORMAÇÃO
3131
3131SISTEMAS DE
INFORMAÇÃO31
3131
31SISTEMAS DEINFORMAÇÃO
3131SISTEMAS DE
INFORMAÇÃO31
3131
31SISTEMAS DEINFORMAÇÃO
3131
3131SISTEMAS DE
INFORMAÇÃO31
31SISTEMAS DEINFORMAÇÃO
3131
31
SISTEMAS DEINFORMAÇÃO
3131
3131 31SISTEMAS DEINFORMAÇÃO
3131
3131SISTEMAS DE
INFORMAÇÃO31
31SISTEMAS DEINFORMAÇÃO
3131
3131SISTEMAS DE
INFORMAÇÃO31
3131
31SISTEMAS DEINFORMAÇÃO
3131SISTEMAS DE
INFORMAÇÃO31
3131
31SISTEMAS DEINFORMAÇÃO
313131SISTEMAS DE
INFORMAÇÃO31
3131
31SISTEMAS DEINFORMAÇÃO
3131SISTEMAS DE
INFORMAÇÃO31
3131
31SISTEMAS DEINFORMAÇÃO
3131
3131SISTEMAS DE
INFORMAÇÃO31
31SISTEMAS DEINFORMAÇÃO
3131
3131SISTEMAS DE
INFORMAÇÃO31
3131
Interface• Um exemplo: criação de um zoológico virtual
interface Animal
{
void nasça();
void passeiePelaTela();
void durma();
double peso();
}
O programador que vai implementar a classe Morcego deve declarar explicitamente que vai usar a interface Animal ⇨ palavra chave implements
SISTEMAS DEINFORMAÇÃO
3232
3232SISTEMAS DE
INFORMAÇÃO32
3232
32SISTEMAS DEINFORMAÇÃO
3232SISTEMAS DE
INFORMAÇÃO32
3232
32SISTEMAS DEINFORMAÇÃO
3232
3232SISTEMAS DE
INFORMAÇÃO32
32SISTEMAS DEINFORMAÇÃO
3232
32
SISTEMAS DEINFORMAÇÃO
3232
3232 32SISTEMAS DEINFORMAÇÃO
3232
3232SISTEMAS DE
INFORMAÇÃO32
32SISTEMAS DEINFORMAÇÃO
3232
3232SISTEMAS DE
INFORMAÇÃO32
3232
32SISTEMAS DEINFORMAÇÃO
3232SISTEMAS DE
INFORMAÇÃO32
3232
32SISTEMAS DEINFORMAÇÃO
323232SISTEMAS DE
INFORMAÇÃO32
3232
32SISTEMAS DEINFORMAÇÃO
3232SISTEMAS DE
INFORMAÇÃO32
3232
32SISTEMAS DEINFORMAÇÃO
3232
3232SISTEMAS DE
INFORMAÇÃO32
32SISTEMAS DEINFORMAÇÃO
3232
3232SISTEMAS DE
INFORMAÇÃO32
3232
Interfaceinterface Animal
{
void nasça();
void passeiePelaTela();
void durma();
double peso();
}
public class Morcego implements Animal{
public void nasça() { System.out.println("Nasceu um morceguinho..."); }
public void passeiePelaTela() { System.out.println("Voo rápido e rasante !!!"); }
public void durma() { System.out.println("Dorme de cabeça para baixo."); }
public double peso() { System.out.println("Este é um morcego gordo!"); return (4.5); }
}
SISTEMAS DEINFORMAÇÃO
3333
3333SISTEMAS DE
INFORMAÇÃO33
3333
33SISTEMAS DEINFORMAÇÃO
3333SISTEMAS DE
INFORMAÇÃO33
3333
33SISTEMAS DEINFORMAÇÃO
3333
3333SISTEMAS DE
INFORMAÇÃO33
33SISTEMAS DEINFORMAÇÃO
3333
33
SISTEMAS DEINFORMAÇÃO
3333
3333 33SISTEMAS DEINFORMAÇÃO
3333
3333SISTEMAS DE
INFORMAÇÃO33
33SISTEMAS DEINFORMAÇÃO
3333
3333SISTEMAS DE
INFORMAÇÃO33
3333
33SISTEMAS DEINFORMAÇÃO
3333SISTEMAS DE
INFORMAÇÃO33
3333
33SISTEMAS DEINFORMAÇÃO
333333SISTEMAS DE
INFORMAÇÃO33
3333
33SISTEMAS DEINFORMAÇÃO
3333SISTEMAS DE
INFORMAÇÃO33
3333
33SISTEMAS DEINFORMAÇÃO
3333
3333SISTEMAS DE
INFORMAÇÃO33
33SISTEMAS DEINFORMAÇÃO
3333
3333SISTEMAS DE
INFORMAÇÃO33
3333
Interfaceinterface Animal
{
void nasça();
void passeiePelaTela();
void durma();
double peso();
}
public class Morcego implements Animal{
public void nasça() { System.out.println(“Nasceu um morceguinho...”); }
public passeioPelaTela() { System.out.println(“Voo rápido e rasante !!!”); }
public durma() { System.out.println(“Dorme de cabeça para baixo.”); }
double peso() { System.out.println(“Este é um morcego gordo!”); return (4.5); }
}
implements – obriga o programador a escrever o código de todos os métodos, considerando suas assinaturas.Todos os métodos da interface devem ser públicos. Por quê?
SISTEMAS DEINFORMAÇÃO
3434
3434SISTEMAS DE
INFORMAÇÃO34
3434
34SISTEMAS DEINFORMAÇÃO
3434SISTEMAS DE
INFORMAÇÃO34
3434
34SISTEMAS DEINFORMAÇÃO
3434
3434SISTEMAS DE
INFORMAÇÃO34
34SISTEMAS DEINFORMAÇÃO
3434
34
SISTEMAS DEINFORMAÇÃO
3434
3434 34SISTEMAS DEINFORMAÇÃO
3434
3434SISTEMAS DE
INFORMAÇÃO34
34SISTEMAS DEINFORMAÇÃO
3434
3434SISTEMAS DE
INFORMAÇÃO34
3434
34SISTEMAS DEINFORMAÇÃO
3434SISTEMAS DE
INFORMAÇÃO34
3434
34SISTEMAS DEINFORMAÇÃO
343434SISTEMAS DE
INFORMAÇÃO34
3434
34SISTEMAS DEINFORMAÇÃO
3434SISTEMAS DE
INFORMAÇÃO34
3434
34SISTEMAS DEINFORMAÇÃO
3434
3434SISTEMAS DE
INFORMAÇÃO34
34SISTEMAS DEINFORMAÇÃO
3434
3434SISTEMAS DE
INFORMAÇÃO34
3434
Interfaceinterface Animal
{
void nasça();
void passeiePelaTela();
void durma();
double peso();
}
public class Morcego implements Animal{
public void nasça() { System.out.println(“Nasceu um morceguinho...”); }
public passeioPelaTela() { System.out.println(“Voo rápido e rasante !!!”); }
public durma() { System.out.println(“Dorme de cabeça para baixo.”); }
double peso() { System.out.println(“Este é um morcego gordo!”); return (4.5); }
}
implements – obriga o programador a escrever o código de todos os métodos, considerando suas assinaturas.Todos os métodos da interface devem ser públicos.
Não definimos especificadores de acesso na interface, pelo mesmo motivo.
SISTEMAS DEINFORMAÇÃO
3535
3535SISTEMAS DE
INFORMAÇÃO35
3535
35SISTEMAS DEINFORMAÇÃO
3535SISTEMAS DE
INFORMAÇÃO35
3535
35SISTEMAS DEINFORMAÇÃO
3535
3535SISTEMAS DE
INFORMAÇÃO35
35SISTEMAS DEINFORMAÇÃO
3535
35
SISTEMAS DEINFORMAÇÃO
3535
3535 35SISTEMAS DEINFORMAÇÃO
3535
3535SISTEMAS DE
INFORMAÇÃO35
35SISTEMAS DEINFORMAÇÃO
3535
3535SISTEMAS DE
INFORMAÇÃO35
3535
35SISTEMAS DEINFORMAÇÃO
3535SISTEMAS DE
INFORMAÇÃO35
3535
35SISTEMAS DEINFORMAÇÃO
353535SISTEMAS DE
INFORMAÇÃO35
3535
35SISTEMAS DEINFORMAÇÃO
3535SISTEMAS DE
INFORMAÇÃO35
3535
35SISTEMAS DEINFORMAÇÃO
3535
3535SISTEMAS DE
INFORMAÇÃO35
35SISTEMAS DEINFORMAÇÃO
3535
3535SISTEMAS DE
INFORMAÇÃO35
3535
Interfaceinterface Animal
{
void nasça();
void passeiePelaTela();
void durma();
double peso();
}
public class Pato implements Animal{
public double peso;
Pato(double p) { peso = p; } public void nasça() { System.out.println("Quebra o ovo."); }
public void passeiePelaTela() { System.out.println("Anda em duas patas. Quá Quá Quá."); }
public void durma() { System.out.println("Dorme em pé."); }
public double peso() { return peso; }
}
SISTEMAS DEINFORMAÇÃO
3636
3636SISTEMAS DE
INFORMAÇÃO36
3636
36SISTEMAS DEINFORMAÇÃO
3636SISTEMAS DE
INFORMAÇÃO36
3636
36SISTEMAS DEINFORMAÇÃO
3636
3636SISTEMAS DE
INFORMAÇÃO36
36SISTEMAS DEINFORMAÇÃO
3636
36
SISTEMAS DEINFORMAÇÃO
3636
3636 36SISTEMAS DEINFORMAÇÃO
3636
3636SISTEMAS DE
INFORMAÇÃO36
36SISTEMAS DEINFORMAÇÃO
3636
3636SISTEMAS DE
INFORMAÇÃO36
3636
36SISTEMAS DEINFORMAÇÃO
3636SISTEMAS DE
INFORMAÇÃO36
3636
36SISTEMAS DEINFORMAÇÃO
363636SISTEMAS DE
INFORMAÇÃO36
3636
36SISTEMAS DEINFORMAÇÃO
3636SISTEMAS DE
INFORMAÇÃO36
3636
36SISTEMAS DEINFORMAÇÃO
3636
3636SISTEMAS DE
INFORMAÇÃO36
36SISTEMAS DEINFORMAÇÃO
3636
3636SISTEMAS DE
INFORMAÇÃO36
3636
Interfaceinterface Animal
{
void nasça();
void passeiePelaTela();
void durma();
double peso();
}
public class Zebra implements Animal{
double peso; int listras; Zebra(double p, int l) { peso = p; listras =l; } public void nasça() { System.out.println("Zebrinha bebê nascendo..."); }
public void passeiePelaTela() { System.out.println("Zebra galopa pela tela."); }
public void durma() { System.out.println("Zebra dorme sem roncar.... zzzzzzzzzzzzzzzz..."); }
public double peso() { return peso; }
public void exibeListras() { System.out.println("Minha zebra tem " + listras + "listras."); }
}
SISTEMAS DEINFORMAÇÃO
3737
3737SISTEMAS DE
INFORMAÇÃO37
3737
37SISTEMAS DEINFORMAÇÃO
3737SISTEMAS DE
INFORMAÇÃO37
3737
37SISTEMAS DEINFORMAÇÃO
3737
3737SISTEMAS DE
INFORMAÇÃO37
37SISTEMAS DEINFORMAÇÃO
3737
37
SISTEMAS DEINFORMAÇÃO
3737
3737 37SISTEMAS DEINFORMAÇÃO
3737
3737SISTEMAS DE
INFORMAÇÃO37
37SISTEMAS DEINFORMAÇÃO
3737
3737SISTEMAS DE
INFORMAÇÃO37
3737
37SISTEMAS DEINFORMAÇÃO
3737SISTEMAS DE
INFORMAÇÃO37
3737
37SISTEMAS DEINFORMAÇÃO
373737SISTEMAS DE
INFORMAÇÃO37
3737
37SISTEMAS DEINFORMAÇÃO
3737SISTEMAS DE
INFORMAÇÃO37
3737
37SISTEMAS DEINFORMAÇÃO
3737
3737SISTEMAS DE
INFORMAÇÃO37
37SISTEMAS DEINFORMAÇÃO
3737
3737SISTEMAS DE
INFORMAÇÃO37
3737
Interfaceinterface Animal
{
void nasça();
void passeiePelaTela();
void durma();
double peso();
}
public class Zebra implements Animal{
double peso; int listras; Zebra(double p, int l) { peso = p; listras =l; } public void nasça() { System.out.println("Zebrinha bebê nascendo..."); }
public void passeiePelaTela() { System.out.println("Zebra galopa pela tela."); }
public void durma() { System.out.println("Zebra dorme sem roncar.... zzzzzzzzzzzzzzzz..."); }
public double peso() { return peso; }
public void exibeListras() { System.out.println("Minha zebra tem " + listras + "listras."); }
}
Pode ter métodos extras (específicos
da classe)
SISTEMAS DEINFORMAÇÃO
3838
3838SISTEMAS DE
INFORMAÇÃO38
3838
38SISTEMAS DEINFORMAÇÃO
3838SISTEMAS DE
INFORMAÇÃO38
3838
38SISTEMAS DEINFORMAÇÃO
3838
3838SISTEMAS DE
INFORMAÇÃO38
38SISTEMAS DEINFORMAÇÃO
3838
38
SISTEMAS DEINFORMAÇÃO
3838
3838 38SISTEMAS DEINFORMAÇÃO
3838
3838SISTEMAS DE
INFORMAÇÃO38
38SISTEMAS DEINFORMAÇÃO
3838
3838SISTEMAS DE
INFORMAÇÃO38
3838
38SISTEMAS DEINFORMAÇÃO
3838SISTEMAS DE
INFORMAÇÃO38
3838
38SISTEMAS DEINFORMAÇÃO
383838SISTEMAS DE
INFORMAÇÃO38
3838
38SISTEMAS DEINFORMAÇÃO
3838SISTEMAS DE
INFORMAÇÃO38
3838
38SISTEMAS DEINFORMAÇÃO
3838
3838SISTEMAS DE
INFORMAÇÃO38
38SISTEMAS DEINFORMAÇÃO
3838
3838SISTEMAS DE
INFORMAÇÃO38
3838
Interface• Observação sobre arquivos X classes em Java:
• normalmente cada classe vai em um arquivo .java de mesmo nome da classe
• cada arquivo “.java” pode ter no máximo uma classe pública (do tipo public);
• caso exista uma classe pública, seu nome deve ser igual ao do arquivo “.java”;
• desta forma, as classes anteriores (Morcego, Pato e Zebra) devem obrigatoriamente estar em arquivos separados.
SISTEMAS DEINFORMAÇÃO
3939
3939SISTEMAS DE
INFORMAÇÃO39
3939
39SISTEMAS DEINFORMAÇÃO
3939SISTEMAS DE
INFORMAÇÃO39
3939
39SISTEMAS DEINFORMAÇÃO
3939
3939SISTEMAS DE
INFORMAÇÃO39
39SISTEMAS DEINFORMAÇÃO
3939
39
SISTEMAS DEINFORMAÇÃO
3939
3939 39SISTEMAS DEINFORMAÇÃO
3939
3939SISTEMAS DE
INFORMAÇÃO39
39SISTEMAS DEINFORMAÇÃO
3939
3939SISTEMAS DE
INFORMAÇÃO39
3939
39SISTEMAS DEINFORMAÇÃO
3939SISTEMAS DE
INFORMAÇÃO39
3939
39SISTEMAS DEINFORMAÇÃO
393939SISTEMAS DE
INFORMAÇÃO39
3939
39SISTEMAS DEINFORMAÇÃO
3939SISTEMAS DE
INFORMAÇÃO39
3939
39SISTEMAS DEINFORMAÇÃO
3939
3939SISTEMAS DE
INFORMAÇÃO39
39SISTEMAS DEINFORMAÇÃO
3939
3939SISTEMAS DE
INFORMAÇÃO39
3939
Interface• Observação sobre interfaces:
• não podemos criar objetos a partir de uma interface
• no exemplo, não podemos criar objetos diretamente da classe Animal
• criamos objetos a partir das classes que implementam a interface (Morcego, Pato e Zebra)
• no entanto, cada objeto criado, além de ser um objeto da classe respectiva, também é um objeto do tipo Animal (INTERFACE TAMBÉM DEFINE UM TIPO).
• Vamos usar as classes criadas…
SISTEMAS DEINFORMAÇÃO
4040
4040SISTEMAS DE
INFORMAÇÃO40
4040
40SISTEMAS DEINFORMAÇÃO
4040SISTEMAS DE
INFORMAÇÃO40
4040
40SISTEMAS DEINFORMAÇÃO
4040
4040SISTEMAS DE
INFORMAÇÃO40
40SISTEMAS DEINFORMAÇÃO
4040
40
SISTEMAS DEINFORMAÇÃO
4040
4040 40SISTEMAS DEINFORMAÇÃO
4040
4040SISTEMAS DE
INFORMAÇÃO40
40SISTEMAS DEINFORMAÇÃO
4040
4040SISTEMAS DE
INFORMAÇÃO40
4040
40SISTEMAS DEINFORMAÇÃO
4040SISTEMAS DE
INFORMAÇÃO40
4040
40SISTEMAS DEINFORMAÇÃO
404040SISTEMAS DE
INFORMAÇÃO40
4040
40SISTEMAS DEINFORMAÇÃO
4040SISTEMAS DE
INFORMAÇÃO40
4040
40SISTEMAS DEINFORMAÇÃO
4040
4040SISTEMAS DE
INFORMAÇÃO40
40SISTEMAS DEINFORMAÇÃO
4040
4040SISTEMAS DE
INFORMAÇÃO40
4040
Interfaceclass Zoologico{ static void cicloDeVida (Animal animal) { animal.nasça(); animal.passeiePelaTela(); animal.durma(); } static public void fazFuncionar() { Zebra zebraPequena = new Zebra(50, 105); Animal zebraGrande = new Zebra(230,160); Morcego m = new Morcego(); Pato p= new Pato (3.2); cicloDeVida(zebraPequena); cicloDeVida(zebraGrande); cicloDeVida(m); cicloDeVida(p); }}
O que significa?
SISTEMAS DEINFORMAÇÃO
4141
4141SISTEMAS DE
INFORMAÇÃO41
4141
41SISTEMAS DEINFORMAÇÃO
4141SISTEMAS DE
INFORMAÇÃO41
4141
41SISTEMAS DEINFORMAÇÃO
4141
4141SISTEMAS DE
INFORMAÇÃO41
41SISTEMAS DEINFORMAÇÃO
4141
41
SISTEMAS DEINFORMAÇÃO
4141
4141 41SISTEMAS DEINFORMAÇÃO
4141
4141SISTEMAS DE
INFORMAÇÃO41
41SISTEMAS DEINFORMAÇÃO
4141
4141SISTEMAS DE
INFORMAÇÃO41
4141
41SISTEMAS DEINFORMAÇÃO
4141SISTEMAS DE
INFORMAÇÃO41
4141
41SISTEMAS DEINFORMAÇÃO
414141SISTEMAS DE
INFORMAÇÃO41
4141
41SISTEMAS DEINFORMAÇÃO
4141SISTEMAS DE
INFORMAÇÃO41
4141
41SISTEMAS DEINFORMAÇÃO
4141
4141SISTEMAS DE
INFORMAÇÃO41
41SISTEMAS DEINFORMAÇÃO
4141
4141SISTEMAS DE
INFORMAÇÃO41
4141
Interfaceclass Zoologico{ static void cicloDeVida (Animal animal) { animal.nasça(); animal.passeiePelaTela(); animal.durma(); } static public void fazFuncionar() { Zebra zebraPequena = new Zebra(50, 105); Animal zebraGrande = new Zebra(230,160); Morcego m = new Morcego(); Pato p= new Pato (3.2); cicloDeVida(zebraPequena); cicloDeVida(zebraGrande); cicloDeVida(m); cicloDeVida(p); }}
O que significa?Posso executar os métodos sem ter objetos instanciados
SISTEMAS DEINFORMAÇÃO
4242
4242SISTEMAS DE
INFORMAÇÃO42
4242
42SISTEMAS DEINFORMAÇÃO
4242SISTEMAS DE
INFORMAÇÃO42
4242
42SISTEMAS DEINFORMAÇÃO
4242
4242SISTEMAS DE
INFORMAÇÃO42
42SISTEMAS DEINFORMAÇÃO
4242
42
SISTEMAS DEINFORMAÇÃO
4242
4242 42SISTEMAS DEINFORMAÇÃO
4242
4242SISTEMAS DE
INFORMAÇÃO42
42SISTEMAS DEINFORMAÇÃO
4242
4242SISTEMAS DE
INFORMAÇÃO42
4242
42SISTEMAS DEINFORMAÇÃO
4242SISTEMAS DE
INFORMAÇÃO42
4242
42SISTEMAS DEINFORMAÇÃO
424242SISTEMAS DE
INFORMAÇÃO42
4242
42SISTEMAS DEINFORMAÇÃO
4242SISTEMAS DE
INFORMAÇÃO42
4242
42SISTEMAS DEINFORMAÇÃO
4242
4242SISTEMAS DE
INFORMAÇÃO42
42SISTEMAS DEINFORMAÇÃO
4242
4242SISTEMAS DE
INFORMAÇÃO42
4242
Interfaceclass Zoologico{ static void cicloDeVida (Animal animal) { animal.nasça(); animal.passeiePelaTela(); animal.durma(); } static public void fazFuncionar() { Zebra zebraPequena = new Zebra(50, 105); Animal zebraGrande = new Zebra(230,160); Morcego m = new Morcego(); Pato p= new Pato (3.2); cicloDeVida(zebraPequena); cicloDeVida(zebraGrande); cicloDeVida(m); cicloDeVida(p); }}
> Zoologico.fazFuncionar()Zebrinha bebê nascendo...Zebra galopa pela tela.Zebra dorme sem roncar.... zzzzzzzzzzzzzzzz...Zebrinha bebê nascendo...Zebra galopa pela tela.Zebra dorme sem roncar.... zzzzzzzzzzzzzzzz...Nasceu um morceguinho...Voo rápido e rasante !!!Dorme de cabeça para baixo.Quebra o ovo.Anda em duas patas. Quá Quá QuáDorme em pé
SISTEMAS DEINFORMAÇÃO
4343
4343SISTEMAS DE
INFORMAÇÃO43
4343
43SISTEMAS DEINFORMAÇÃO
4343SISTEMAS DE
INFORMAÇÃO43
4343
43SISTEMAS DEINFORMAÇÃO
4343
4343SISTEMAS DE
INFORMAÇÃO43
43SISTEMAS DEINFORMAÇÃO
4343
43
SISTEMAS DEINFORMAÇÃO
4343
4343 43SISTEMAS DEINFORMAÇÃO
4343
4343SISTEMAS DE
INFORMAÇÃO43
43SISTEMAS DEINFORMAÇÃO
4343
4343SISTEMAS DE
INFORMAÇÃO43
4343
43SISTEMAS DEINFORMAÇÃO
4343SISTEMAS DE
INFORMAÇÃO43
4343
43SISTEMAS DEINFORMAÇÃO
434343SISTEMAS DE
INFORMAÇÃO43
4343
43SISTEMAS DEINFORMAÇÃO
4343SISTEMAS DE
INFORMAÇÃO43
4343
43SISTEMAS DEINFORMAÇÃO
4343
4343SISTEMAS DE
INFORMAÇÃO43
43SISTEMAS DEINFORMAÇÃO
4343
4343SISTEMAS DE
INFORMAÇÃO43
4343
Interfaceclass Zoologico{ static void cicloDeVida (Animal animal) { animal.nasça(); animal.passeiePelaTela(); animal.durma(); } static public void fazFuncionar() { Zebra zebraPequena = new Zebra(50, 105); Animal zebraGrande = new Zebra(230,160); Morcego m = new Morcego(); Pato p= new Pato (3.2); cicloDeVida(zebraPequena); cicloDeVida(zebraGrande); cicloDeVida(m); cicloDeVida(p); }}
Observe este código?Quais as consequências dessas definições ???
SISTEMAS DEINFORMAÇÃO
4444
4444SISTEMAS DE
INFORMAÇÃO44
4444
44SISTEMAS DEINFORMAÇÃO
4444SISTEMAS DE
INFORMAÇÃO44
4444
44SISTEMAS DEINFORMAÇÃO
4444
4444SISTEMAS DE
INFORMAÇÃO44
44SISTEMAS DEINFORMAÇÃO
4444
44
SISTEMAS DEINFORMAÇÃO
4444
4444 44SISTEMAS DEINFORMAÇÃO
4444
4444SISTEMAS DE
INFORMAÇÃO44
44SISTEMAS DEINFORMAÇÃO
4444
4444SISTEMAS DE
INFORMAÇÃO44
4444
44SISTEMAS DEINFORMAÇÃO
4444SISTEMAS DE
INFORMAÇÃO44
4444
44SISTEMAS DEINFORMAÇÃO
444444SISTEMAS DE
INFORMAÇÃO44
4444
44SISTEMAS DEINFORMAÇÃO
4444SISTEMAS DE
INFORMAÇÃO44
4444
44SISTEMAS DEINFORMAÇÃO
4444
4444SISTEMAS DE
INFORMAÇÃO44
44SISTEMAS DEINFORMAÇÃO
4444
4444SISTEMAS DE
INFORMAÇÃO44
4444
public class Zebra implements Animal{
double peso; int listras; Zebra(double p, int l) { peso = p; listras =l; } public void nasça() { System.out.println("Zebrinha bebê nascendo..."); }
public void passeiePelaTela() { System.out.println("Zebra galopa pela tela."); }
public void durma() { System.out.println("Zebra dorme sem roncar.... zzzzzzzzzzzzzzzz..."); }
public double peso() { return peso; }
public void exibeListras() { System.out.println("Minha zebra tem " + listras + "listras."); }
}
interface Animal
{
void nasça();
void passeiePelaTela();
void durma();
double peso();
}
SISTEMAS DEINFORMAÇÃO
4545
4545SISTEMAS DE
INFORMAÇÃO45
4545
45SISTEMAS DEINFORMAÇÃO
4545SISTEMAS DE
INFORMAÇÃO45
4545
45SISTEMAS DEINFORMAÇÃO
4545
4545SISTEMAS DE
INFORMAÇÃO45
45SISTEMAS DEINFORMAÇÃO
4545
45
SISTEMAS DEINFORMAÇÃO
4545
4545 45SISTEMAS DEINFORMAÇÃO
4545
4545SISTEMAS DE
INFORMAÇÃO45
45SISTEMAS DEINFORMAÇÃO
4545
4545SISTEMAS DE
INFORMAÇÃO45
4545
45SISTEMAS DEINFORMAÇÃO
4545SISTEMAS DE
INFORMAÇÃO45
4545
45SISTEMAS DEINFORMAÇÃO
454545SISTEMAS DE
INFORMAÇÃO45
4545
45SISTEMAS DEINFORMAÇÃO
4545SISTEMAS DE
INFORMAÇÃO45
4545
45SISTEMAS DEINFORMAÇÃO
4545
4545SISTEMAS DE
INFORMAÇÃO45
45SISTEMAS DEINFORMAÇÃO
4545
4545SISTEMAS DE
INFORMAÇÃO45
4545
public class Zebra implements Animal{
double peso; int listras; Zebra(double p, int l) { peso = p; listras =l; } public void nasça() { System.out.println("Zebrinha bebê nascendo..."); }
public void passeiePelaTela() { System.out.println("Zebra galopa pela tela."); }
public void durma() { System.out.println("Zebra dorme sem roncar.... zzzzzzzzzzzzzzzz..."); }
public double peso() { return peso; }
public void exibeListras() { System.out.println("Minha zebra tem " + listras + "listras."); }
}
interface Animal
{
void nasça();
void passeiePelaTela();
void durma();
double peso();
}
SISTEMAS DEINFORMAÇÃO
4646
4646SISTEMAS DE
INFORMAÇÃO46
4646
46SISTEMAS DEINFORMAÇÃO
4646SISTEMAS DE
INFORMAÇÃO46
4646
46SISTEMAS DEINFORMAÇÃO
4646
4646SISTEMAS DE
INFORMAÇÃO46
46SISTEMAS DEINFORMAÇÃO
4646
46
SISTEMAS DEINFORMAÇÃO
4646
4646 46SISTEMAS DEINFORMAÇÃO
4646
4646SISTEMAS DE
INFORMAÇÃO46
46SISTEMAS DEINFORMAÇÃO
4646
4646SISTEMAS DE
INFORMAÇÃO46
4646
46SISTEMAS DEINFORMAÇÃO
4646SISTEMAS DE
INFORMAÇÃO46
4646
46SISTEMAS DEINFORMAÇÃO
464646SISTEMAS DE
INFORMAÇÃO46
4646
46SISTEMAS DEINFORMAÇÃO
4646SISTEMAS DE
INFORMAÇÃO46
4646
46SISTEMAS DEINFORMAÇÃO
4646
4646SISTEMAS DE
INFORMAÇÃO46
46SISTEMAS DEINFORMAÇÃO
4646
4646SISTEMAS DE
INFORMAÇÃO46
4646
public class Zebra implements Animal{
double peso; int listras; Zebra(double p, int l) { peso = p; listras =l; } public void nasça() { System.out.println("Zebrinha bebê nascendo..."); }
public void passeiePelaTela() { System.out.println("Zebra galopa pela tela."); }
public void durma() { System.out.println("Zebra dorme sem roncar.... zzzzzzzzzzzzzzzz..."); }
public double peso() { return peso; }
public void exibeListras() { System.out.println("Minha zebra tem " + listras + "listras."); }
}
interface Animal
{
void nasça();
void passeiePelaTela();
void durma();
double peso();
}
SISTEMAS DEINFORMAÇÃO
4747
4747SISTEMAS DE
INFORMAÇÃO47
4747
47SISTEMAS DEINFORMAÇÃO
4747SISTEMAS DE
INFORMAÇÃO47
4747
47SISTEMAS DEINFORMAÇÃO
4747
4747SISTEMAS DE
INFORMAÇÃO47
47SISTEMAS DEINFORMAÇÃO
4747
47
SISTEMAS DEINFORMAÇÃO
4747
4747 47SISTEMAS DEINFORMAÇÃO
4747
4747SISTEMAS DE
INFORMAÇÃO47
47SISTEMAS DEINFORMAÇÃO
4747
4747SISTEMAS DE
INFORMAÇÃO47
4747
47SISTEMAS DEINFORMAÇÃO
4747SISTEMAS DE
INFORMAÇÃO47
4747
47SISTEMAS DEINFORMAÇÃO
474747SISTEMAS DE
INFORMAÇÃO47
4747
47SISTEMAS DEINFORMAÇÃO
4747SISTEMAS DE
INFORMAÇÃO47
4747
47SISTEMAS DEINFORMAÇÃO
4747
4747SISTEMAS DE
INFORMAÇÃO47
47SISTEMAS DEINFORMAÇÃO
4747
4747SISTEMAS DE
INFORMAÇÃO47
4747
public class Zebra implements Animal{
double peso; int listras; Zebra(double p, int l) { peso = p; listras =l; } public void nasça() { System.out.println("Zebrinha bebê nascendo..."); }
public void passeiePelaTela() { System.out.println("Zebra galopa pela tela."); }
public void durma() { System.out.println("Zebra dorme sem roncar.... zzzzzzzzzzzzzzzz..."); }
public double peso() { return peso; }
public void exibeListras() { System.out.println("Minha zebra tem " + listras + "listras."); }
}
interface Animal
{
void nasça();
void passeiePelaTela();
void durma();
double peso();
}
SISTEMAS DEINFORMAÇÃO
4848
4848SISTEMAS DE
INFORMAÇÃO48
4848
48SISTEMAS DEINFORMAÇÃO
4848SISTEMAS DE
INFORMAÇÃO48
4848
48SISTEMAS DEINFORMAÇÃO
4848
4848SISTEMAS DE
INFORMAÇÃO48
48SISTEMAS DEINFORMAÇÃO
4848
48
SISTEMAS DEINFORMAÇÃO
4848
4848 48SISTEMAS DEINFORMAÇÃO
4848
4848SISTEMAS DE
INFORMAÇÃO48
48SISTEMAS DEINFORMAÇÃO
4848
4848SISTEMAS DE
INFORMAÇÃO48
4848
48SISTEMAS DEINFORMAÇÃO
4848SISTEMAS DE
INFORMAÇÃO48
4848
48SISTEMAS DEINFORMAÇÃO
484848SISTEMAS DE
INFORMAÇÃO48
4848
48SISTEMAS DEINFORMAÇÃO
4848SISTEMAS DE
INFORMAÇÃO48
4848
48SISTEMAS DEINFORMAÇÃO
4848
4848SISTEMAS DE
INFORMAÇÃO48
48SISTEMAS DEINFORMAÇÃO
4848
4848SISTEMAS DE
INFORMAÇÃO48
4848
public class Zebra implements Animal{
double peso; int listras; Zebra(double p, int l) { peso = p; listras =l; } public void nasça() { System.out.println("Zebrinha bebê nascendo..."); }
public void passeiePelaTela() { System.out.println("Zebra galopa pela tela."); }
public void durma() { System.out.println("Zebra dorme sem roncar.... zzzzzzzzzzzzzzzz..."); }
public double peso() { return peso; }
public void exibeListras() { System.out.println("Minha zebra tem " + listras + "listras."); }
}
interface Animal
{
void nasça();
void passeiePelaTela();
void durma();
double peso();
}
Não faz parte da interface...E daí?
SISTEMAS DEINFORMAÇÃO
4949
4949SISTEMAS DE
INFORMAÇÃO49
4949
49SISTEMAS DEINFORMAÇÃO
4949SISTEMAS DE
INFORMAÇÃO49
4949
49SISTEMAS DEINFORMAÇÃO
4949
4949SISTEMAS DE
INFORMAÇÃO49
49SISTEMAS DEINFORMAÇÃO
4949
49
SISTEMAS DEINFORMAÇÃO
4949
4949 49SISTEMAS DEINFORMAÇÃO
4949
4949SISTEMAS DE
INFORMAÇÃO49
49SISTEMAS DEINFORMAÇÃO
4949
4949SISTEMAS DE
INFORMAÇÃO49
4949
49SISTEMAS DEINFORMAÇÃO
4949SISTEMAS DE
INFORMAÇÃO49
4949
49SISTEMAS DEINFORMAÇÃO
494949SISTEMAS DE
INFORMAÇÃO49
4949
49SISTEMAS DEINFORMAÇÃO
4949SISTEMAS DE
INFORMAÇÃO49
4949
49SISTEMAS DEINFORMAÇÃO
4949
4949SISTEMAS DE
INFORMAÇÃO49
49SISTEMAS DEINFORMAÇÃO
4949
4949SISTEMAS DE
INFORMAÇÃO49
4949
Interfaceclass Zoologico{ static void cicloDeVida (Animal animal) { animal.nasça(); animal.passeiePelaTela(); animal.durma(); } static public void fazFuncionar() { Zebra zebraPequena = new Zebra(50, 105); Animal zebraGrande = new Zebra(230,160); Morcego m = new Morcego(); Pato p= new Pato (3.2); cicloDeVida(zebraPequena); cicloDeVida(zebraGrande); cicloDeVida(m); cicloDeVida(p); }}
Não posso instanciar objetos da interface (Animal).Posso instanciar somente das classes que implementam a interface...Mas posso definir que o tipo do objeto instanciado é Animal
SISTEMAS DEINFORMAÇÃO
5050
5050SISTEMAS DE
INFORMAÇÃO50
5050
50SISTEMAS DEINFORMAÇÃO
5050SISTEMAS DE
INFORMAÇÃO50
5050
50SISTEMAS DEINFORMAÇÃO
5050
5050SISTEMAS DE
INFORMAÇÃO50
50SISTEMAS DEINFORMAÇÃO
5050
50
SISTEMAS DEINFORMAÇÃO
5050
5050 50SISTEMAS DEINFORMAÇÃO
5050
5050SISTEMAS DE
INFORMAÇÃO50
50SISTEMAS DEINFORMAÇÃO
5050
5050SISTEMAS DE
INFORMAÇÃO50
5050
50SISTEMAS DEINFORMAÇÃO
5050SISTEMAS DE
INFORMAÇÃO50
5050
50SISTEMAS DEINFORMAÇÃO
505050SISTEMAS DE
INFORMAÇÃO50
5050
50SISTEMAS DEINFORMAÇÃO
5050SISTEMAS DE
INFORMAÇÃO50
5050
50SISTEMAS DEINFORMAÇÃO
5050
5050SISTEMAS DE
INFORMAÇÃO50
50SISTEMAS DEINFORMAÇÃO
5050
5050SISTEMAS DE
INFORMAÇÃO50
5050
Interfaceclass Zoologico{ static void cicloDeVida (Animal animal) { animal.nasça(); animal.passeiePelaTela(); animal.durma(); } static public void fazFuncionar() { Zebra zebraPequena = new Zebra(50, 105); Animal zebraGrande = new Zebra(230,160); Morcego m = new Morcego(); Pato p= new Pato (3.2); cicloDeVida(zebraPequena); cicloDeVida(zebraGrande); cicloDeVida(m); cicloDeVida(p); }}
Consequência:
> Zebra zebraPequena = new Zebra(50, 105);
> Animal zebraGrande = new Zebra(230,160);
> zebraPequena.exibeListras();
Minha zebra tem 105 listras.
> zebraGrande.exibeListras();
????
SISTEMAS DEINFORMAÇÃO
5151
5151SISTEMAS DE
INFORMAÇÃO51
5151
51SISTEMAS DEINFORMAÇÃO
5151SISTEMAS DE
INFORMAÇÃO51
5151
51SISTEMAS DEINFORMAÇÃO
5151
5151SISTEMAS DE
INFORMAÇÃO51
51SISTEMAS DEINFORMAÇÃO
5151
51
SISTEMAS DEINFORMAÇÃO
5151
5151 51SISTEMAS DEINFORMAÇÃO
5151
5151SISTEMAS DE
INFORMAÇÃO51
51SISTEMAS DEINFORMAÇÃO
5151
5151SISTEMAS DE
INFORMAÇÃO51
5151
51SISTEMAS DEINFORMAÇÃO
5151SISTEMAS DE
INFORMAÇÃO51
5151
51SISTEMAS DEINFORMAÇÃO
515151SISTEMAS DE
INFORMAÇÃO51
5151
51SISTEMAS DEINFORMAÇÃO
5151SISTEMAS DE
INFORMAÇÃO51
5151
51SISTEMAS DEINFORMAÇÃO
5151
5151SISTEMAS DE
INFORMAÇÃO51
51SISTEMAS DEINFORMAÇÃO
5151
5151SISTEMAS DE
INFORMAÇÃO51
5151
Interfaceclass Zoologico{ static void cicloDeVida (Animal animal) { animal.nasça(); animal.passeiePelaTela(); animal.durma(); } static public void fazFuncionar() { Zebra zebraPequena = new Zebra(50, 105); Animal zebraGrande = new Zebra(230,160); Morcego m = new Morcego(); Pato p= new Pato (3.2); cicloDeVida(zebraPequena); cicloDeVida(zebraGrande); cicloDeVida(m); cicloDeVida(p); }}
Consequência:
> Zebra zebraPequena = new Zebra(50, 105);
> Animal zebraGrande = new Zebra(230,160);
> zebraPequena.exibeListras();
Minha zebra tem 105 listras.
> zebraGrande.exibeListras();
Static Error: No method in Animal with name
'exibeListras' accepts arguments ()
SISTEMAS DEINFORMAÇÃO
5252
5252SISTEMAS DE
INFORMAÇÃO52
5252
52SISTEMAS DEINFORMAÇÃO
5252SISTEMAS DE
INFORMAÇÃO52
5252
52SISTEMAS DEINFORMAÇÃO
5252
5252SISTEMAS DE
INFORMAÇÃO52
52SISTEMAS DEINFORMAÇÃO
5252
52
SISTEMAS DEINFORMAÇÃO
5252
5252 52SISTEMAS DEINFORMAÇÃO
5252
5252SISTEMAS DE
INFORMAÇÃO52
52SISTEMAS DEINFORMAÇÃO
5252
5252SISTEMAS DE
INFORMAÇÃO52
5252
52SISTEMAS DEINFORMAÇÃO
5252SISTEMAS DE
INFORMAÇÃO52
5252
52SISTEMAS DEINFORMAÇÃO
525252SISTEMAS DE
INFORMAÇÃO52
5252
52SISTEMAS DEINFORMAÇÃO
5252SISTEMAS DE
INFORMAÇÃO52
5252
52SISTEMAS DEINFORMAÇÃO
5252
5252SISTEMAS DE
INFORMAÇÃO52
52SISTEMAS DEINFORMAÇÃO
5252
5252SISTEMAS DE
INFORMAÇÃO52
5252
Interfaceclass Zoologico{ static void cicloDeVida (Animal animal) { animal.nasça(); animal.passeiePelaTela(); animal.durma(); } static public void fazFuncionar() { Zebra zebraPequena = new Zebra(50, 105); Animal zebraGrande = new Zebra(230,160); Morcego m = new Morcego(); Pato p= new Pato (3.2); cicloDeVida(zebraPequena); cicloDeVida(zebraGrande); cicloDeVida(m); cicloDeVida(p); }}
Consequência:
> Zebra zebraPequena = new Zebra(50, 105);
> Animal zebraGrande = new Zebra(230,160);
> zebraPequena.exibeListras();
Minha zebra tem 105 listras.
> zebraGrande.exibeListras();
Static Error: No method in Animal with name
'exibeListras' accepts arguments ()
A associação de qual método executar é dinâmica, mas a
interface é definida estaticamente
(Java é tipada!)
SISTEMAS DEINFORMAÇÃO
5353
5353SISTEMAS DE
INFORMAÇÃO53
5353
53SISTEMAS DEINFORMAÇÃO
5353SISTEMAS DE
INFORMAÇÃO53
5353
53SISTEMAS DEINFORMAÇÃO
5353
5353SISTEMAS DE
INFORMAÇÃO53
53SISTEMAS DEINFORMAÇÃO
5353
53
SISTEMAS DEINFORMAÇÃO
5353
5353 53SISTEMAS DEINFORMAÇÃO
5353
5353SISTEMAS DE
INFORMAÇÃO53
53SISTEMAS DEINFORMAÇÃO
5353
5353SISTEMAS DE
INFORMAÇÃO53
5353
53SISTEMAS DEINFORMAÇÃO
5353SISTEMAS DE
INFORMAÇÃO53
5353
53SISTEMAS DEINFORMAÇÃO
535353SISTEMAS DE
INFORMAÇÃO53
5353
53SISTEMAS DEINFORMAÇÃO
5353SISTEMAS DE
INFORMAÇÃO53
5353
53SISTEMAS DEINFORMAÇÃO
5353
5353SISTEMAS DE
INFORMAÇÃO53
53SISTEMAS DEINFORMAÇÃO
5353
5353SISTEMAS DE
INFORMAÇÃO53
5353
Interfaceclass Zoologico{ static void cicloDeVida (Animal animal) { animal.nasça(); animal.passeiePelaTela(); animal.durma(); } static public void fazFuncionar() { Zebra zebraPequena = new Zebra(50, 105); Animal zebraGrande = new Zebra(230,160); Morcego m = new Morcego(); Pato p= new Pato (3.2); cicloDeVida(zebraPequena); cicloDeVida(zebraGrande); cicloDeVida(m); cicloDeVida(p); }}
Dá para melhorar ???
SISTEMAS DEINFORMAÇÃO
5454
5454SISTEMAS DE
INFORMAÇÃO54
5454
54SISTEMAS DEINFORMAÇÃO
5454SISTEMAS DE
INFORMAÇÃO54
5454
54SISTEMAS DEINFORMAÇÃO
5454
5454SISTEMAS DE
INFORMAÇÃO54
54SISTEMAS DEINFORMAÇÃO
5454
54
SISTEMAS DEINFORMAÇÃO
5454
5454 54SISTEMAS DEINFORMAÇÃO
5454
5454SISTEMAS DE
INFORMAÇÃO54
54SISTEMAS DEINFORMAÇÃO
5454
5454SISTEMAS DE
INFORMAÇÃO54
5454
54SISTEMAS DEINFORMAÇÃO
5454SISTEMAS DE
INFORMAÇÃO54
5454
54SISTEMAS DEINFORMAÇÃO
545454SISTEMAS DE
INFORMAÇÃO54
5454
54SISTEMAS DEINFORMAÇÃO
5454SISTEMAS DE
INFORMAÇÃO54
5454
54SISTEMAS DEINFORMAÇÃO
5454
5454SISTEMAS DE
INFORMAÇÃO54
54SISTEMAS DEINFORMAÇÃO
5454
5454SISTEMAS DE
INFORMAÇÃO54
5454
Interfaceclass Zoologico{ static void cicloDeVida (Animal
animal) { animal.nasça(); animal.passeiePelaTela(); animal.durma(); } static public void fazFuncionar() { Animal bicharada []= new Animal [4]; bicharada [0] = new Zebra(50, 105); bicharada [1] = new Zebra(230,160); bicharada [2] = new Morcego(); bicharada [3] = new Pato (3.2);
??? }}
class Zoologico{ static void cicloDeVida (Animal animal) { animal.nasça(); animal.passeiePelaTela(); animal.durma(); } static public void fazFuncionar() { Zebra zebraPequena = new Zebra(50, 105); Animal zebraGrande = new Zebra(230,160); Morcego m = new Morcego(); Pato p= new Pato (3.2); cicloDeVida(zebraPequena); cicloDeVida(zebraGrande); cicloDeVida(m); cicloDeVida(p); }}
SISTEMAS DEINFORMAÇÃO
5555
5555SISTEMAS DE
INFORMAÇÃO55
5555
55SISTEMAS DEINFORMAÇÃO
5555SISTEMAS DE
INFORMAÇÃO55
5555
55SISTEMAS DEINFORMAÇÃO
5555
5555SISTEMAS DE
INFORMAÇÃO55
55SISTEMAS DEINFORMAÇÃO
5555
55
SISTEMAS DEINFORMAÇÃO
5555
5555 55SISTEMAS DEINFORMAÇÃO
5555
5555SISTEMAS DE
INFORMAÇÃO55
55SISTEMAS DEINFORMAÇÃO
5555
5555SISTEMAS DE
INFORMAÇÃO55
5555
55SISTEMAS DEINFORMAÇÃO
5555SISTEMAS DE
INFORMAÇÃO55
5555
55SISTEMAS DEINFORMAÇÃO
555555SISTEMAS DE
INFORMAÇÃO55
5555
55SISTEMAS DEINFORMAÇÃO
5555SISTEMAS DE
INFORMAÇÃO55
5555
55SISTEMAS DEINFORMAÇÃO
5555
5555SISTEMAS DE
INFORMAÇÃO55
55SISTEMAS DEINFORMAÇÃO
5555
5555SISTEMAS DE
INFORMAÇÃO55
5555
Interfaceclass Zoologico{ static void cicloDeVida (Animal animal) { animal.nasça(); animal.passeiePelaTela(); animal.durma(); } static public void fazFuncionar() { Animal bicharada []= new Animal [4]; bicharada [0] = new Zebra(50, 105); bicharada [1] = new Zebra(230,160); bicharada [2] = new Morcego(); bicharada [3] = new Pato (3.2); for (int i = 0; i < bicharada.length; i++) cicloDeVida(bicharada[i]); }}
class Zoologico{ static void cicloDeVida (Animal animal) { animal.nasça(); animal.passeiePelaTela(); animal.durma(); } static public void fazFuncionar() { Zebra zebraPequena = new Zebra(50, 105); Animal zebraGrande = new Zebra(230,160); Morcego m = new Morcego(); Pato p= new Pato (3.2); cicloDeVida(zebraPequena); cicloDeVida(zebraGrande); cicloDeVida(m); cicloDeVida(p); }}
SISTEMAS DEINFORMAÇÃO
5656
5656SISTEMAS DE
INFORMAÇÃO56
5656
56SISTEMAS DEINFORMAÇÃO
5656SISTEMAS DE
INFORMAÇÃO56
5656
56SISTEMAS DEINFORMAÇÃO
5656
5656SISTEMAS DE
INFORMAÇÃO56
56SISTEMAS DEINFORMAÇÃO
5656
56
SISTEMAS DEINFORMAÇÃO
5656
5656 56SISTEMAS DEINFORMAÇÃO
5656
5656SISTEMAS DE
INFORMAÇÃO56
56SISTEMAS DEINFORMAÇÃO
5656
5656SISTEMAS DE
INFORMAÇÃO56
5656
56SISTEMAS DEINFORMAÇÃO
5656SISTEMAS DE
INFORMAÇÃO56
5656
56SISTEMAS DEINFORMAÇÃO
565656SISTEMAS DE
INFORMAÇÃO56
5656
56SISTEMAS DEINFORMAÇÃO
5656SISTEMAS DE
INFORMAÇÃO56
5656
56SISTEMAS DEINFORMAÇÃO
5656
5656SISTEMAS DE
INFORMAÇÃO56
56SISTEMAS DEINFORMAÇÃO
5656
5656SISTEMAS DE
INFORMAÇÃO56
5656
Interfaceclass Zoologico{ static void cicloDeVida (Animal animal) { animal.nasça(); animal.passeiePelaTela(); animal.durma(); } static public void fazFuncionar() { Animal bicharada []= new Animal [4]; bicharada [0] = new Zebra(50, 105); bicharada [1] = new Zebra(230,160); bicharada [2] = new Morcego(); bicharada [3] = new Pato (3.2); for (int i = 0; i < bicharada.length; i++) cicloDeVida(bicharada[i]); }}
Dá para escrever de outro jeito ???
SISTEMAS DEINFORMAÇÃO
5757
5757SISTEMAS DE
INFORMAÇÃO57
5757
57SISTEMAS DEINFORMAÇÃO
5757SISTEMAS DE
INFORMAÇÃO57
5757
57SISTEMAS DEINFORMAÇÃO
5757
5757SISTEMAS DE
INFORMAÇÃO57
57SISTEMAS DEINFORMAÇÃO
5757
57
SISTEMAS DEINFORMAÇÃO
5757
5757 57SISTEMAS DEINFORMAÇÃO
5757
5757SISTEMAS DE
INFORMAÇÃO57
57SISTEMAS DEINFORMAÇÃO
5757
5757SISTEMAS DE
INFORMAÇÃO57
5757
57SISTEMAS DEINFORMAÇÃO
5757SISTEMAS DE
INFORMAÇÃO57
5757
57SISTEMAS DEINFORMAÇÃO
575757SISTEMAS DE
INFORMAÇÃO57
5757
57SISTEMAS DEINFORMAÇÃO
5757SISTEMAS DE
INFORMAÇÃO57
5757
57SISTEMAS DEINFORMAÇÃO
5757
5757SISTEMAS DE
INFORMAÇÃO57
57SISTEMAS DEINFORMAÇÃO
5757
5757SISTEMAS DE
INFORMAÇÃO57
5757
Interfaceclass Zoologico{ static void cicloDeVida (Animal animal) { animal.nasça(); animal.passeiePelaTela(); animal.durma(); } static public void fazFuncionar() { Animal bicharada []= new Animal [4]; bicharada [0] = new Zebra(50, 105); bicharada [1] = new Zebra(230,160); bicharada [2] = new Morcego(); bicharada [3] = new Pato (3.2); for (int i = 0; i < bicharada.length; i++) cicloDeVida(bicharada[i]); }}
class Zoologico{ static void cicloDeVida (Animal animal) { animal.nasça(); animal.passeiePelaTela(); animal.durma(); } static public void fazFuncionar() { Animal bicharada []= {new Zebra(50, 105), new
Zebra(230,160), new Morcego(), new Pato (3.2)} for (int i = 0; i < bicharada.length; i++) cicloDeVida(bicharada[i]); }}
SISTEMAS DEINFORMAÇÃO
5858
5858SISTEMAS DE
INFORMAÇÃO58
5858
58SISTEMAS DEINFORMAÇÃO
5858SISTEMAS DE
INFORMAÇÃO58
5858
58SISTEMAS DEINFORMAÇÃO
5858
5858SISTEMAS DE
INFORMAÇÃO58
58SISTEMAS DEINFORMAÇÃO
5858
58
SISTEMAS DEINFORMAÇÃO
5858
5858 58SISTEMAS DEINFORMAÇÃO
5858
5858SISTEMAS DE
INFORMAÇÃO58
58SISTEMAS DEINFORMAÇÃO
5858
5858SISTEMAS DE
INFORMAÇÃO58
5858
58SISTEMAS DEINFORMAÇÃO
5858SISTEMAS DE
INFORMAÇÃO58
5858
58SISTEMAS DEINFORMAÇÃO
585858SISTEMAS DE
INFORMAÇÃO58
5858
58SISTEMAS DEINFORMAÇÃO
5858SISTEMAS DE
INFORMAÇÃO58
5858
58SISTEMAS DEINFORMAÇÃO
5858
5858SISTEMAS DE
INFORMAÇÃO58
58SISTEMAS DEINFORMAÇÃO
5858
5858SISTEMAS DE
INFORMAÇÃO58
5858
Interfaceclass Zoologico{ static void cicloDeVida (Animal animal) { animal.nasça(); animal.passeiePelaTela(); animal.durma(); } static public void fazFuncionar() { Zebra zebraPequena = new Zebra(50,
105); Animal zebraGrande = new
Zebra(230,160); Morcego m = new Morcego(); Pato p= new Pato (3.2); cicloDeVida(zebraPequena); cicloDeVida(zebraGrande); cicloDeVida(m); cicloDeVida(p); }}
class Zoologico{ static void cicloDeVida (Animal animal) { animal.nasça(); animal.passeiePelaTela(); animal.durma(); } static public void fazFuncionar() { Animal bicharada []= {new Zebra(50, 105), new
Zebra(230,160), new Morcego(), new Pato (3.2)} for (int i = 0; i < bicharada.length; i++) cicloDeVida(bicharada[i]); }}
Primeira versão Última versão
SISTEMAS DEINFORMAÇÃO
5959
5959SISTEMAS DE
INFORMAÇÃO59
5959
59SISTEMAS DEINFORMAÇÃO
5959SISTEMAS DE
INFORMAÇÃO59
5959
59SISTEMAS DEINFORMAÇÃO
5959
5959SISTEMAS DE
INFORMAÇÃO59
59SISTEMAS DEINFORMAÇÃO
5959
59
SISTEMAS DEINFORMAÇÃO
5959
5959 59SISTEMAS DEINFORMAÇÃO
5959
5959SISTEMAS DE
INFORMAÇÃO59
59SISTEMAS DEINFORMAÇÃO
5959
5959SISTEMAS DE
INFORMAÇÃO59
5959
59SISTEMAS DEINFORMAÇÃO
5959SISTEMAS DE
INFORMAÇÃO59
5959
59SISTEMAS DEINFORMAÇÃO
595959SISTEMAS DE
INFORMAÇÃO59
5959
59SISTEMAS DEINFORMAÇÃO
5959SISTEMAS DE
INFORMAÇÃO59
5959
59SISTEMAS DEINFORMAÇÃO
5959
5959SISTEMAS DE
INFORMAÇÃO59
59SISTEMAS DEINFORMAÇÃO
5959
5959SISTEMAS DE
INFORMAÇÃO59
5959
Implementando mais de uma Interface
• No mundo real, os objetos não obedecem uma única interface.
• Exemplo:
• um indivíduo, pode ser ao mesmo tempo :
• um homem (ou mulher)
• um professor
• um coordenador de curso
• um sócio de clube
• cada um desses “papéis” poderia entender mensagens próprias…
SISTEMAS DEINFORMAÇÃO
6060
6060SISTEMAS DE
INFORMAÇÃO60
6060
60SISTEMAS DEINFORMAÇÃO
6060SISTEMAS DE
INFORMAÇÃO60
6060
60SISTEMAS DEINFORMAÇÃO
6060
6060SISTEMAS DE
INFORMAÇÃO60
60SISTEMAS DEINFORMAÇÃO
6060
60
SISTEMAS DEINFORMAÇÃO
6060
6060 60SISTEMAS DEINFORMAÇÃO
6060
6060SISTEMAS DE
INFORMAÇÃO60
60SISTEMAS DEINFORMAÇÃO
6060
6060SISTEMAS DE
INFORMAÇÃO60
6060
60SISTEMAS DEINFORMAÇÃO
6060SISTEMAS DE
INFORMAÇÃO60
6060
60SISTEMAS DEINFORMAÇÃO
606060SISTEMAS DE
INFORMAÇÃO60
6060
60SISTEMAS DEINFORMAÇÃO
6060SISTEMAS DE
INFORMAÇÃO60
6060
60SISTEMAS DEINFORMAÇÃO
6060
6060SISTEMAS DE
INFORMAÇÃO60
60SISTEMAS DEINFORMAÇÃO
6060
6060SISTEMAS DE
INFORMAÇÃO60
6060
Implementando mais de uma Interface
• indivíduo – nasce, cresce, morre:
• homem – alista-se no exército
• professor – ministra aula, avalia alunos, publica artigos
• coordenador de curso – atribui aulas, faz horário
• sócio de clube – paga mensalidade, usa piscina…
SISTEMAS DEINFORMAÇÃO
6161
6161SISTEMAS DE
INFORMAÇÃO61
6161
61SISTEMAS DEINFORMAÇÃO
6161SISTEMAS DE
INFORMAÇÃO61
6161
61SISTEMAS DEINFORMAÇÃO
6161
6161SISTEMAS DE
INFORMAÇÃO61
61SISTEMAS DEINFORMAÇÃO
6161
61
SISTEMAS DEINFORMAÇÃO
6161
6161 61SISTEMAS DEINFORMAÇÃO
6161
6161SISTEMAS DE
INFORMAÇÃO61
61SISTEMAS DEINFORMAÇÃO
6161
6161SISTEMAS DE
INFORMAÇÃO61
6161
61SISTEMAS DEINFORMAÇÃO
6161SISTEMAS DE
INFORMAÇÃO61
6161
61SISTEMAS DEINFORMAÇÃO
616161SISTEMAS DE
INFORMAÇÃO61
6161
61SISTEMAS DEINFORMAÇÃO
6161SISTEMAS DE
INFORMAÇÃO61
6161
61SISTEMAS DEINFORMAÇÃO
6161
6161SISTEMAS DE
INFORMAÇÃO61
61SISTEMAS DEINFORMAÇÃO
6161
6161SISTEMAS DE
INFORMAÇÃO61
6161
Implementando mais de uma Interface• Exemplo de implementação:
• interfaces Voador e Transportador dePessoas
interface Voador{ void voa(); void aterrisa();}
interface TransportadorDePessoas{ void entramPessoas(); void saemPessoas();}
SISTEMAS DEINFORMAÇÃO
6262
6262SISTEMAS DE
INFORMAÇÃO62
6262
62SISTEMAS DEINFORMAÇÃO
6262SISTEMAS DE
INFORMAÇÃO62
6262
62SISTEMAS DEINFORMAÇÃO
6262
6262SISTEMAS DE
INFORMAÇÃO62
62SISTEMAS DEINFORMAÇÃO
6262
62
SISTEMAS DEINFORMAÇÃO
6262
6262 62SISTEMAS DEINFORMAÇÃO
6262
6262SISTEMAS DE
INFORMAÇÃO62
62SISTEMAS DEINFORMAÇÃO
6262
6262SISTEMAS DE
INFORMAÇÃO62
6262
62SISTEMAS DEINFORMAÇÃO
6262SISTEMAS DE
INFORMAÇÃO62
6262
62SISTEMAS DEINFORMAÇÃO
626262SISTEMAS DE
INFORMAÇÃO62
6262
62SISTEMAS DEINFORMAÇÃO
6262SISTEMAS DE
INFORMAÇÃO62
6262
62SISTEMAS DEINFORMAÇÃO
6262
6262SISTEMAS DE
INFORMAÇÃO62
62SISTEMAS DEINFORMAÇÃO
6262
6262SISTEMAS DE
INFORMAÇÃO62
6262
Implementando mais de uma Interface
interface Voador{ void voa(); void aterrisa();}
class Ave implements Voador{ public void voa() { System.out.println ("Bate as asas"); } public void aterrisa() { System.out.println ("Desliza suavemente até tocar o chão"); }}
SISTEMAS DEINFORMAÇÃO
6363
6363SISTEMAS DE
INFORMAÇÃO63
6363
63SISTEMAS DEINFORMAÇÃO
6363SISTEMAS DE
INFORMAÇÃO63
6363
63SISTEMAS DEINFORMAÇÃO
6363
6363SISTEMAS DE
INFORMAÇÃO63
63SISTEMAS DEINFORMAÇÃO
6363
63
SISTEMAS DEINFORMAÇÃO
6363
6363 63SISTEMAS DEINFORMAÇÃO
6363
6363SISTEMAS DE
INFORMAÇÃO63
63SISTEMAS DEINFORMAÇÃO
6363
6363SISTEMAS DE
INFORMAÇÃO63
6363
63SISTEMAS DEINFORMAÇÃO
6363SISTEMAS DE
INFORMAÇÃO63
6363
63SISTEMAS DEINFORMAÇÃO
636363SISTEMAS DE
INFORMAÇÃO63
6363
63SISTEMAS DEINFORMAÇÃO
6363SISTEMAS DE
INFORMAÇÃO63
6363
63SISTEMAS DEINFORMAÇÃO
6363
6363SISTEMAS DE
INFORMAÇÃO63
63SISTEMAS DEINFORMAÇÃO
6363
6363SISTEMAS DE
INFORMAÇÃO63
6363
Implementando mais de uma Interface
interface TransportadorDePessoas{ void entramPessoas(); void saemPessoas();}
class Onibus implements TransportadorDePessoas{ public void entramPessoas() { System.out.println ("Abre a porta para as pessoas entrarem"); } public void saemPessoas() { System.out.println ("Abre a porta para as pessoas saírem"); }}
SISTEMAS DEINFORMAÇÃO
6464
6464SISTEMAS DE
INFORMAÇÃO64
6464
64SISTEMAS DEINFORMAÇÃO
6464SISTEMAS DE
INFORMAÇÃO64
6464
64SISTEMAS DEINFORMAÇÃO
6464
6464SISTEMAS DE
INFORMAÇÃO64
64SISTEMAS DEINFORMAÇÃO
6464
64
SISTEMAS DEINFORMAÇÃO
6464
6464 64SISTEMAS DEINFORMAÇÃO
6464
6464SISTEMAS DE
INFORMAÇÃO64
64SISTEMAS DEINFORMAÇÃO
6464
6464SISTEMAS DE
INFORMAÇÃO64
6464
64SISTEMAS DEINFORMAÇÃO
6464SISTEMAS DE
INFORMAÇÃO64
6464
64SISTEMAS DEINFORMAÇÃO
646464SISTEMAS DE
INFORMAÇÃO64
6464
64SISTEMAS DEINFORMAÇÃO
6464SISTEMAS DE
INFORMAÇÃO64
6464
64SISTEMAS DEINFORMAÇÃO
6464
6464SISTEMAS DE
INFORMAÇÃO64
64SISTEMAS DEINFORMAÇÃO
6464
6464SISTEMAS DE
INFORMAÇÃO64
6464
Implementando mais de uma Interface
interface Voador{ void voa(); void aterrisa();}
interface TransportadorDePessoas{ void entramPessoas(); void saemPessoas();}
class Aviao implements Voador, TransportadorDePessoas{ public void voa() { System.out.println ("Liga as turbinas e decola."); } public void aterrisa() { System.out.println ("Abaixa o trem de pouso e desce preferencialmente no chão e suavemente... :)"); }
public void entramPessoas() { System.out.println ("Procedimento de embarque idosos, gestantes e portadores de deficiência têm preferência..."); } public void saemPessoas() { System.out.println ("Desembarque. Passageiros devem aguardar até parada completa da aeronave."); }}
SISTEMAS DEINFORMAÇÃO
6565
6565SISTEMAS DE
INFORMAÇÃO65
6565
65SISTEMAS DEINFORMAÇÃO
6565SISTEMAS DE
INFORMAÇÃO65
6565
65SISTEMAS DEINFORMAÇÃO
6565
6565SISTEMAS DE
INFORMAÇÃO65
65SISTEMAS DEINFORMAÇÃO
6565
65
SISTEMAS DEINFORMAÇÃO
6565
6565 65SISTEMAS DEINFORMAÇÃO
6565
6565SISTEMAS DE
INFORMAÇÃO65
65SISTEMAS DEINFORMAÇÃO
6565
6565SISTEMAS DE
INFORMAÇÃO65
6565
65SISTEMAS DEINFORMAÇÃO
6565SISTEMAS DE
INFORMAÇÃO65
6565
65SISTEMAS DEINFORMAÇÃO
656565SISTEMAS DE
INFORMAÇÃO65
6565
65SISTEMAS DEINFORMAÇÃO
6565SISTEMAS DE
INFORMAÇÃO65
6565
65SISTEMAS DEINFORMAÇÃO
6565
6565SISTEMAS DE
INFORMAÇÃO65
65SISTEMAS DEINFORMAÇÃO
6565
6565SISTEMAS DE
INFORMAÇÃO65
6565
Implementando mais de uma Interfaceclass TestaInterface{ public static void executa() { TransportadorDePessoas t = new Onibus(); Voador v = new Ave(); Aviao a = new Aviao(); t.entramPessoas(); t.saemPessoas(); v.voa(); v.aterrisa(); a.entramPessoas(); a.voa(); }}
> TestaInterface.executa()
Abre a porta para as pessoas entrarem
Abre a porta para as pessoas saírem
Bate as asas
Desliza suavemente até tocar o chão
Procedimento de embarque idosos,
gestantes e portadores de deficiência têm
preferência...
Liga as turbinas e decola.
SISTEMAS DEINFORMAÇÃO
6666
6666SISTEMAS DE
INFORMAÇÃO66
6666
66SISTEMAS DEINFORMAÇÃO
6666SISTEMAS DE
INFORMAÇÃO66
6666
66SISTEMAS DEINFORMAÇÃO
6666
6666SISTEMAS DE
INFORMAÇÃO66
66SISTEMAS DEINFORMAÇÃO
6666
66
SISTEMAS DEINFORMAÇÃO
6666
6666 66SISTEMAS DEINFORMAÇÃO
6666
6666SISTEMAS DE
INFORMAÇÃO66
66SISTEMAS DEINFORMAÇÃO
6666
6666SISTEMAS DE
INFORMAÇÃO66
6666
66SISTEMAS DEINFORMAÇÃO
6666SISTEMAS DE
INFORMAÇÃO66
6666
66SISTEMAS DEINFORMAÇÃO
666666SISTEMAS DE
INFORMAÇÃO66
6666
66SISTEMAS DEINFORMAÇÃO
6666SISTEMAS DE
INFORMAÇÃO66
6666
66SISTEMAS DEINFORMAÇÃO
6666
6666SISTEMAS DE
INFORMAÇÃO66
66SISTEMAS DEINFORMAÇÃO
6666
6666SISTEMAS DE
INFORMAÇÃO66
6666
Um exemplo pouco mais complexo• Classe Fruta
• atributos: nome, peso, preço
• atributos devem ser carregados no construtor
SISTEMAS DEINFORMAÇÃO
6767
6767SISTEMAS DE
INFORMAÇÃO67
6767
67SISTEMAS DEINFORMAÇÃO
6767SISTEMAS DE
INFORMAÇÃO67
6767
67SISTEMAS DEINFORMAÇÃO
6767
6767SISTEMAS DE
INFORMAÇÃO67
67SISTEMAS DEINFORMAÇÃO
6767
67
SISTEMAS DEINFORMAÇÃO
6767
6767 67SISTEMAS DEINFORMAÇÃO
6767
6767SISTEMAS DE
INFORMAÇÃO67
67SISTEMAS DEINFORMAÇÃO
6767
6767SISTEMAS DE
INFORMAÇÃO67
6767
67SISTEMAS DEINFORMAÇÃO
6767SISTEMAS DE
INFORMAÇÃO67
6767
67SISTEMAS DEINFORMAÇÃO
676767SISTEMAS DE
INFORMAÇÃO67
6767
67SISTEMAS DEINFORMAÇÃO
6767SISTEMAS DE
INFORMAÇÃO67
6767
67SISTEMAS DEINFORMAÇÃO
6767
6767SISTEMAS DE
INFORMAÇÃO67
67SISTEMAS DEINFORMAÇÃO
6767
6767SISTEMAS DE
INFORMAÇÃO67
6767
Um exemplo pouco mais complexo• Classe Fruta
• atributos: nome, peso, preço
• atributos devem ser carregados no construtor
class Fruta{ String nome; double preco, peso; Fruta (String n, double p, double pr) { nome = n; peso = p; preco = pr; } void imprime() { System.out.print("Nome: " + nome); System.out.print(“ Peso: " + peso); System.out.println(“ Preço: " + preco); }}
SISTEMAS DEINFORMAÇÃO
6868
6868SISTEMAS DE
INFORMAÇÃO68
6868
68SISTEMAS DEINFORMAÇÃO
6868SISTEMAS DE
INFORMAÇÃO68
6868
68SISTEMAS DEINFORMAÇÃO
6868
6868SISTEMAS DE
INFORMAÇÃO68
68SISTEMAS DEINFORMAÇÃO
6868
68
SISTEMAS DEINFORMAÇÃO
6868
6868 68SISTEMAS DEINFORMAÇÃO
6868
6868SISTEMAS DE
INFORMAÇÃO68
68SISTEMAS DEINFORMAÇÃO
6868
6868SISTEMAS DE
INFORMAÇÃO68
6868
68SISTEMAS DEINFORMAÇÃO
6868SISTEMAS DE
INFORMAÇÃO68
6868
68SISTEMAS DEINFORMAÇÃO
686868SISTEMAS DE
INFORMAÇÃO68
6868
68SISTEMAS DEINFORMAÇÃO
6868SISTEMAS DE
INFORMAÇÃO68
6868
68SISTEMAS DEINFORMAÇÃO
6868
6868SISTEMAS DE
INFORMAÇÃO68
68SISTEMAS DEINFORMAÇÃO
6868
6868SISTEMAS DE
INFORMAÇÃO68
6868
Um exemplo pouco mais complexo• Classe Fruta
• queremos criar um vetor de frutas e:
• ordenar por nome
• ordenar por peso
• como fazer ???
SISTEMAS DEINFORMAÇÃO
6969
6969SISTEMAS DE
INFORMAÇÃO69
6969
69SISTEMAS DEINFORMAÇÃO
6969SISTEMAS DE
INFORMAÇÃO69
6969
69SISTEMAS DEINFORMAÇÃO
6969
6969SISTEMAS DE
INFORMAÇÃO69
69SISTEMAS DEINFORMAÇÃO
6969
69
SISTEMAS DEINFORMAÇÃO
6969
6969 69SISTEMAS DEINFORMAÇÃO
6969
6969SISTEMAS DE
INFORMAÇÃO69
69SISTEMAS DEINFORMAÇÃO
6969
6969SISTEMAS DE
INFORMAÇÃO69
6969
69SISTEMAS DEINFORMAÇÃO
6969SISTEMAS DE
INFORMAÇÃO69
6969
69SISTEMAS DEINFORMAÇÃO
696969SISTEMAS DE
INFORMAÇÃO69
6969
69SISTEMAS DEINFORMAÇÃO
6969SISTEMAS DE
INFORMAÇÃO69
6969
69SISTEMAS DEINFORMAÇÃO
6969
6969SISTEMAS DE
INFORMAÇÃO69
69SISTEMAS DEINFORMAÇÃO
6969
6969SISTEMAS DE
INFORMAÇÃO69
6969
Um exemplo pouco mais complexo• Classe Fruta
• queremos criar um vetor de frutas e:
• ordenar por nome
• ordenar por peso
• como fazer ???
• já vimos métodos de ordenação
• podemos escolher um método e implementar
• mudar somente o critério de comparação (preço ou peso)
SISTEMAS DEINFORMAÇÃO
7070
7070SISTEMAS DE
INFORMAÇÃO70
7070
70SISTEMAS DEINFORMAÇÃO
7070SISTEMAS DE
INFORMAÇÃO70
7070
70SISTEMAS DEINFORMAÇÃO
7070
7070SISTEMAS DE
INFORMAÇÃO70
70SISTEMAS DEINFORMAÇÃO
7070
70
SISTEMAS DEINFORMAÇÃO
7070
7070 70SISTEMAS DEINFORMAÇÃO
7070
7070SISTEMAS DE
INFORMAÇÃO70
70SISTEMAS DEINFORMAÇÃO
7070
7070SISTEMAS DE
INFORMAÇÃO70
7070
70SISTEMAS DEINFORMAÇÃO
7070SISTEMAS DE
INFORMAÇÃO70
7070
70SISTEMAS DEINFORMAÇÃO
707070SISTEMAS DE
INFORMAÇÃO70
7070
70SISTEMAS DEINFORMAÇÃO
7070SISTEMAS DE
INFORMAÇÃO70
7070
70SISTEMAS DEINFORMAÇÃO
7070
7070SISTEMAS DE
INFORMAÇÃO70
70SISTEMAS DEINFORMAÇÃO
7070
7070SISTEMAS DE
INFORMAÇÃO70
7070
Um exemplo pouco mais complexoclass Quitanda{ // define array e construtor
// imprime frutas
// ordena por Preço
// ordena por Peso
// método principal que invoca os demais
}
SISTEMAS DEINFORMAÇÃO
7171
7171SISTEMAS DE
INFORMAÇÃO71
7171
71SISTEMAS DEINFORMAÇÃO
7171SISTEMAS DE
INFORMAÇÃO71
7171
71SISTEMAS DEINFORMAÇÃO
7171
7171SISTEMAS DE
INFORMAÇÃO71
71SISTEMAS DEINFORMAÇÃO
7171
71
SISTEMAS DEINFORMAÇÃO
7171
7171 71SISTEMAS DEINFORMAÇÃO
7171
7171SISTEMAS DE
INFORMAÇÃO71
71SISTEMAS DEINFORMAÇÃO
7171
7171SISTEMAS DE
INFORMAÇÃO71
7171
71SISTEMAS DEINFORMAÇÃO
7171SISTEMAS DE
INFORMAÇÃO71
7171
71SISTEMAS DEINFORMAÇÃO
717171SISTEMAS DE
INFORMAÇÃO71
7171
71SISTEMAS DEINFORMAÇÃO
7171SISTEMAS DE
INFORMAÇÃO71
7171
71SISTEMAS DEINFORMAÇÃO
7171
7171SISTEMAS DE
INFORMAÇÃO71
71SISTEMAS DEINFORMAÇÃO
7171
7171SISTEMAS DE
INFORMAÇÃO71
7171
Um exemplo pouco mais complexoclass Quitanda{ // define array e construtor ???? // imprime frutas
// ordena por Preço
// ordena por Peso
// método principal que invoca os demais
}
SISTEMAS DEINFORMAÇÃO
7272
7272SISTEMAS DE
INFORMAÇÃO72
7272
72SISTEMAS DEINFORMAÇÃO
7272SISTEMAS DE
INFORMAÇÃO72
7272
72SISTEMAS DEINFORMAÇÃO
7272
7272SISTEMAS DE
INFORMAÇÃO72
72SISTEMAS DEINFORMAÇÃO
7272
72
SISTEMAS DEINFORMAÇÃO
7272
7272 72SISTEMAS DEINFORMAÇÃO
7272
7272SISTEMAS DE
INFORMAÇÃO72
72SISTEMAS DEINFORMAÇÃO
7272
7272SISTEMAS DE
INFORMAÇÃO72
7272
72SISTEMAS DEINFORMAÇÃO
7272SISTEMAS DE
INFORMAÇÃO72
7272
72SISTEMAS DEINFORMAÇÃO
727272SISTEMAS DE
INFORMAÇÃO72
7272
72SISTEMAS DEINFORMAÇÃO
7272SISTEMAS DE
INFORMAÇÃO72
7272
72SISTEMAS DEINFORMAÇÃO
7272
7272SISTEMAS DE
INFORMAÇÃO72
72SISTEMAS DEINFORMAÇÃO
7272
7272SISTEMAS DE
INFORMAÇÃO72
7272
Um exemplo pouco mais complexoclass Quitanda{ // define array e construtor Fruta [] frutas = new Fruta [5]; public Quitanda() { frutas [0] = new Fruta ("Laranja", 0.2, 0.5); frutas [1] = new Fruta ("Kiwi", 0.1, 2); frutas [2] = new Fruta ("Mamão", 1.5, 1.2); frutas [3] = new Fruta ("Pera", 0.3, 1.7); frutas [4] = new Fruta ("Banana", 0.3, 0.2); } // imprime frutas
// ordena por Preço
// ordena por Peso
// método principal que invoca os demais
}
SISTEMAS DEINFORMAÇÃO
7373
7373SISTEMAS DE
INFORMAÇÃO73
7373
73SISTEMAS DEINFORMAÇÃO
7373SISTEMAS DE
INFORMAÇÃO73
7373
73SISTEMAS DEINFORMAÇÃO
7373
7373SISTEMAS DE
INFORMAÇÃO73
73SISTEMAS DEINFORMAÇÃO
7373
73
SISTEMAS DEINFORMAÇÃO
7373
7373 73SISTEMAS DEINFORMAÇÃO
7373
7373SISTEMAS DE
INFORMAÇÃO73
73SISTEMAS DEINFORMAÇÃO
7373
7373SISTEMAS DE
INFORMAÇÃO73
7373
73SISTEMAS DEINFORMAÇÃO
7373SISTEMAS DE
INFORMAÇÃO73
7373
73SISTEMAS DEINFORMAÇÃO
737373SISTEMAS DE
INFORMAÇÃO73
7373
73SISTEMAS DEINFORMAÇÃO
7373SISTEMAS DE
INFORMAÇÃO73
7373
73SISTEMAS DEINFORMAÇÃO
7373
7373SISTEMAS DE
INFORMAÇÃO73
73SISTEMAS DEINFORMAÇÃO
7373
7373SISTEMAS DE
INFORMAÇÃO73
7373
Um exemplo pouco mais complexoclass Quitanda{ // define array e construtor ... // imprime frutas
???? // ordena por Preço
// ordena por Peso
// método principal que invoca os demais
}
SISTEMAS DEINFORMAÇÃO
7474
7474SISTEMAS DE
INFORMAÇÃO74
7474
74SISTEMAS DEINFORMAÇÃO
7474SISTEMAS DE
INFORMAÇÃO74
7474
74SISTEMAS DEINFORMAÇÃO
7474
7474SISTEMAS DE
INFORMAÇÃO74
74SISTEMAS DEINFORMAÇÃO
7474
74
SISTEMAS DEINFORMAÇÃO
7474
7474 74SISTEMAS DEINFORMAÇÃO
7474
7474SISTEMAS DE
INFORMAÇÃO74
74SISTEMAS DEINFORMAÇÃO
7474
7474SISTEMAS DE
INFORMAÇÃO74
7474
74SISTEMAS DEINFORMAÇÃO
7474SISTEMAS DE
INFORMAÇÃO74
7474
74SISTEMAS DEINFORMAÇÃO
747474SISTEMAS DE
INFORMAÇÃO74
7474
74SISTEMAS DEINFORMAÇÃO
7474SISTEMAS DE
INFORMAÇÃO74
7474
74SISTEMAS DEINFORMAÇÃO
7474
7474SISTEMAS DE
INFORMAÇÃO74
74SISTEMAS DEINFORMAÇÃO
7474
7474SISTEMAS DE
INFORMAÇÃO74
7474
Um exemplo pouco mais complexoclass Quitanda{ // define array e construtor ... // imprime frutas
public void imprime() { for (int i = 0; i < frutas.length; i++) frutas [i].imprime(); }
}
SISTEMAS DEINFORMAÇÃO
7575
7575SISTEMAS DE
INFORMAÇÃO75
7575
75SISTEMAS DEINFORMAÇÃO
7575SISTEMAS DE
INFORMAÇÃO75
7575
75SISTEMAS DEINFORMAÇÃO
7575
7575SISTEMAS DE
INFORMAÇÃO75
75SISTEMAS DEINFORMAÇÃO
7575
75
SISTEMAS DEINFORMAÇÃO
7575
7575 75SISTEMAS DEINFORMAÇÃO
7575
7575SISTEMAS DE
INFORMAÇÃO75
75SISTEMAS DEINFORMAÇÃO
7575
7575SISTEMAS DE
INFORMAÇÃO75
7575
75SISTEMAS DEINFORMAÇÃO
7575SISTEMAS DE
INFORMAÇÃO75
7575
75SISTEMAS DEINFORMAÇÃO
757575SISTEMAS DE
INFORMAÇÃO75
7575
75SISTEMAS DEINFORMAÇÃO
7575SISTEMAS DE
INFORMAÇÃO75
7575
75SISTEMAS DEINFORMAÇÃO
7575
7575SISTEMAS DE
INFORMAÇÃO75
75SISTEMAS DEINFORMAÇÃO
7575
7575SISTEMAS DE
INFORMAÇÃO75
7575
Um exemplo pouco mais complexoclass Quitanda{ // define array e construtor // imprime frutas // ordena por Preço ???? // ordena por Peso
// método principal que invoca os demais
}
SISTEMAS DEINFORMAÇÃO
7676
7676SISTEMAS DE
INFORMAÇÃO76
7676
76SISTEMAS DEINFORMAÇÃO
7676SISTEMAS DE
INFORMAÇÃO76
7676
76SISTEMAS DEINFORMAÇÃO
7676
7676SISTEMAS DE
INFORMAÇÃO76
76SISTEMAS DEINFORMAÇÃO
7676
76
SISTEMAS DEINFORMAÇÃO
7676
7676 76SISTEMAS DEINFORMAÇÃO
7676
7676SISTEMAS DE
INFORMAÇÃO76
76SISTEMAS DEINFORMAÇÃO
7676
7676SISTEMAS DE
INFORMAÇÃO76
7676
76SISTEMAS DEINFORMAÇÃO
7676SISTEMAS DE
INFORMAÇÃO76
7676
76SISTEMAS DEINFORMAÇÃO
767676SISTEMAS DE
INFORMAÇÃO76
7676
76SISTEMAS DEINFORMAÇÃO
7676SISTEMAS DE
INFORMAÇÃO76
7676
76SISTEMAS DEINFORMAÇÃO
7676
7676SISTEMAS DE
INFORMAÇÃO76
76SISTEMAS DEINFORMAÇÃO
7676
7676SISTEMAS DE
INFORMAÇÃO76
7676
Um exemplo pouco mais complexoclass Quitanda{ // define array e construtor // imprime frutas
// ordena por Preço – método inserção diretavoid ordenaPorPreco (){ int ivet, isubv; Fruta frutaAInserir; for (ivet=1; ivet < frutas.length; ivet++) { frutaAInserir = frutas[ivet]; isubv = ivet; while ((isubv > 0) && (frutas[isubv 1].preco > frutaAInserir.preco)) { frutas[isubv] = frutas[isubv 1]; isubv; } frutas [isubv] = frutaAInserir; } }
SISTEMAS DEINFORMAÇÃO
7777
7777SISTEMAS DE
INFORMAÇÃO77
7777
77SISTEMAS DEINFORMAÇÃO
7777SISTEMAS DE
INFORMAÇÃO77
7777
77SISTEMAS DEINFORMAÇÃO
7777
7777SISTEMAS DE
INFORMAÇÃO77
77SISTEMAS DEINFORMAÇÃO
7777
77
SISTEMAS DEINFORMAÇÃO
7777
7777 77SISTEMAS DEINFORMAÇÃO
7777
7777SISTEMAS DE
INFORMAÇÃO77
77SISTEMAS DEINFORMAÇÃO
7777
7777SISTEMAS DE
INFORMAÇÃO77
7777
77SISTEMAS DEINFORMAÇÃO
7777SISTEMAS DE
INFORMAÇÃO77
7777
77SISTEMAS DEINFORMAÇÃO
777777SISTEMAS DE
INFORMAÇÃO77
7777
77SISTEMAS DEINFORMAÇÃO
7777SISTEMAS DE
INFORMAÇÃO77
7777
77SISTEMAS DEINFORMAÇÃO
7777
7777SISTEMAS DE
INFORMAÇÃO77
77SISTEMAS DEINFORMAÇÃO
7777
7777SISTEMAS DE
INFORMAÇÃO77
7777
Um exemplo pouco mais complexoclass Quitanda{ // define array e construtor // imprime frutas // ordena por Preço // ordena por Peso???? // método principal que invoca os demais
}
SISTEMAS DEINFORMAÇÃO
7878
7878SISTEMAS DE
INFORMAÇÃO78
7878
78SISTEMAS DEINFORMAÇÃO
7878SISTEMAS DE
INFORMAÇÃO78
7878
78SISTEMAS DEINFORMAÇÃO
7878
7878SISTEMAS DE
INFORMAÇÃO78
78SISTEMAS DEINFORMAÇÃO
7878
78
SISTEMAS DEINFORMAÇÃO
7878
7878 78SISTEMAS DEINFORMAÇÃO
7878
7878SISTEMAS DE
INFORMAÇÃO78
78SISTEMAS DEINFORMAÇÃO
7878
7878SISTEMAS DE
INFORMAÇÃO78
7878
78SISTEMAS DEINFORMAÇÃO
7878SISTEMAS DE
INFORMAÇÃO78
7878
78SISTEMAS DEINFORMAÇÃO
787878SISTEMAS DE
INFORMAÇÃO78
7878
78SISTEMAS DEINFORMAÇÃO
7878SISTEMAS DE
INFORMAÇÃO78
7878
78SISTEMAS DEINFORMAÇÃO
7878
7878SISTEMAS DE
INFORMAÇÃO78
78SISTEMAS DEINFORMAÇÃO
7878
7878SISTEMAS DE
INFORMAÇÃO78
7878
Um exemplo pouco mais complexoclass Quitanda{ // define array e construtor // imprime frutas // ordena por Preço // ordena por Pesovoid ordenaPorPreco (){ int ivet, isubv; Fruta frutaAInserir; for (ivet=1; ivet < frutas.length; ivet++) { frutaAInserir = frutas[ivet]; isubv = ivet; while ((isubv > 0) && (frutas [isubv 1].peso > frutaAInserir.peso)) { frutas[isubv] = frutas[isubv 1]; isubv; } frutas [isubv] = frutaAInserir; }}
SISTEMAS DEINFORMAÇÃO
7979
7979SISTEMAS DE
INFORMAÇÃO79
7979
79SISTEMAS DEINFORMAÇÃO
7979SISTEMAS DE
INFORMAÇÃO79
7979
79SISTEMAS DEINFORMAÇÃO
7979
7979SISTEMAS DE
INFORMAÇÃO79
79SISTEMAS DEINFORMAÇÃO
7979
79
SISTEMAS DEINFORMAÇÃO
7979
7979 79SISTEMAS DEINFORMAÇÃO
7979
7979SISTEMAS DE
INFORMAÇÃO79
79SISTEMAS DEINFORMAÇÃO
7979
7979SISTEMAS DE
INFORMAÇÃO79
7979
79SISTEMAS DEINFORMAÇÃO
7979SISTEMAS DE
INFORMAÇÃO79
7979
79SISTEMAS DEINFORMAÇÃO
797979SISTEMAS DE
INFORMAÇÃO79
7979
79SISTEMAS DEINFORMAÇÃO
7979SISTEMAS DE
INFORMAÇÃO79
7979
79SISTEMAS DEINFORMAÇÃO
7979
7979SISTEMAS DE
INFORMAÇÃO79
79SISTEMAS DEINFORMAÇÃO
7979
7979SISTEMAS DE
INFORMAÇÃO79
7979
Um exemplo pouco mais complexoclass Quitanda{ // define array e construtor // imprime frutas // ordena por Preço // ordena por Peso
// método principal que invoca os demais public static void main (String [] args) { Quitanda xepa = new Quitanda(); System.out.println("Desordenado"); xepa.imprime(); System.out.println("Em ordem de preço"); xepa.ordenaPorPreco(); xepa.imprime(); System.out.println("Em ordem de peso"); xepa.ordenaPorPeso(); xepa.imprime(); } }
SISTEMAS DEINFORMAÇÃO
8080
8080SISTEMAS DE
INFORMAÇÃO80
8080
80SISTEMAS DEINFORMAÇÃO
8080SISTEMAS DE
INFORMAÇÃO80
8080
80SISTEMAS DEINFORMAÇÃO
8080
8080SISTEMAS DE
INFORMAÇÃO80
80SISTEMAS DEINFORMAÇÃO
8080
80
SISTEMAS DEINFORMAÇÃO
8080
8080 80SISTEMAS DEINFORMAÇÃO
8080
8080SISTEMAS DE
INFORMAÇÃO80
80SISTEMAS DEINFORMAÇÃO
8080
8080SISTEMAS DE
INFORMAÇÃO80
8080
80SISTEMAS DEINFORMAÇÃO
8080SISTEMAS DE
INFORMAÇÃO80
8080
80SISTEMAS DEINFORMAÇÃO
808080SISTEMAS DE
INFORMAÇÃO80
8080
80SISTEMAS DEINFORMAÇÃO
8080SISTEMAS DE
INFORMAÇÃO80
8080
80SISTEMAS DEINFORMAÇÃO
8080
8080SISTEMAS DE
INFORMAÇÃO80
80SISTEMAS DEINFORMAÇÃO
8080
8080SISTEMAS DE
INFORMAÇÃO80
8080
Um exemplo pouco mais complexo• Qual é o problema do código apresentado?
SISTEMAS DEINFORMAÇÃO
8181
8181SISTEMAS DE
INFORMAÇÃO81
8181
81SISTEMAS DEINFORMAÇÃO
8181SISTEMAS DE
INFORMAÇÃO81
8181
81SISTEMAS DEINFORMAÇÃO
8181
8181SISTEMAS DE
INFORMAÇÃO81
81SISTEMAS DEINFORMAÇÃO
8181
81
SISTEMAS DEINFORMAÇÃO
8181
8181 81SISTEMAS DEINFORMAÇÃO
8181
8181SISTEMAS DE
INFORMAÇÃO81
81SISTEMAS DEINFORMAÇÃO
8181
8181SISTEMAS DE
INFORMAÇÃO81
8181
81SISTEMAS DEINFORMAÇÃO
8181SISTEMAS DE
INFORMAÇÃO81
8181
81SISTEMAS DEINFORMAÇÃO
818181SISTEMAS DE
INFORMAÇÃO81
8181
81SISTEMAS DEINFORMAÇÃO
8181SISTEMAS DE
INFORMAÇÃO81
8181
81SISTEMAS DEINFORMAÇÃO
8181
8181SISTEMAS DE
INFORMAÇÃO81
81SISTEMAS DEINFORMAÇÃO
8181
8181SISTEMAS DE
INFORMAÇÃO81
8181
Um exemplo pouco mais complexo• Qual é o problema do código apresentado?
• Código duplicado para ordenação.
• E se tivesse que ordenar por outros critérios?
SISTEMAS DEINFORMAÇÃO
8282
8282SISTEMAS DE
INFORMAÇÃO82
8282
82SISTEMAS DEINFORMAÇÃO
8282SISTEMAS DE
INFORMAÇÃO82
8282
82SISTEMAS DEINFORMAÇÃO
8282
8282SISTEMAS DE
INFORMAÇÃO82
82SISTEMAS DEINFORMAÇÃO
8282
82
SISTEMAS DEINFORMAÇÃO
8282
8282 82SISTEMAS DEINFORMAÇÃO
8282
8282SISTEMAS DE
INFORMAÇÃO82
82SISTEMAS DEINFORMAÇÃO
8282
8282SISTEMAS DE
INFORMAÇÃO82
8282
82SISTEMAS DEINFORMAÇÃO
8282SISTEMAS DE
INFORMAÇÃO82
8282
82SISTEMAS DEINFORMAÇÃO
828282SISTEMAS DE
INFORMAÇÃO82
8282
82SISTEMAS DEINFORMAÇÃO
8282SISTEMAS DE
INFORMAÇÃO82
8282
82SISTEMAS DEINFORMAÇÃO
8282
8282SISTEMAS DE
INFORMAÇÃO82
82SISTEMAS DEINFORMAÇÃO
8282
8282SISTEMAS DE
INFORMAÇÃO82
8282
Um exemplo pouco mais complexo• Qual é o problema do código apresentado?
• Código duplicado para ordenação.
• E se tivesse que ordenar por outros critérios?
• Problema … mais código repetido!
SISTEMAS DEINFORMAÇÃO
8383
8383SISTEMAS DE
INFORMAÇÃO83
8383
83SISTEMAS DEINFORMAÇÃO
8383SISTEMAS DE
INFORMAÇÃO83
8383
83SISTEMAS DEINFORMAÇÃO
8383
8383SISTEMAS DE
INFORMAÇÃO83
83SISTEMAS DEINFORMAÇÃO
8383
83
SISTEMAS DEINFORMAÇÃO
8383
8383 83SISTEMAS DEINFORMAÇÃO
8383
8383SISTEMAS DE
INFORMAÇÃO83
83SISTEMAS DEINFORMAÇÃO
8383
8383SISTEMAS DE
INFORMAÇÃO83
8383
83SISTEMAS DEINFORMAÇÃO
8383SISTEMAS DE
INFORMAÇÃO83
8383
83SISTEMAS DEINFORMAÇÃO
838383SISTEMAS DE
INFORMAÇÃO83
8383
83SISTEMAS DEINFORMAÇÃO
8383SISTEMAS DE
INFORMAÇÃO83
8383
83SISTEMAS DEINFORMAÇÃO
8383
8383SISTEMAS DE
INFORMAÇÃO83
83SISTEMAS DEINFORMAÇÃO
8383
8383SISTEMAS DE
INFORMAÇÃO83
8383
Um exemplo pouco mais complexo• Qual é o problema do código apresentado?
• Código duplicado para ordenação.
• E se tivesse que ordenar por outros critérios?
• Problema … mais código repetido!
• Solução: interface!
SISTEMAS DEINFORMAÇÃO
8484
8484SISTEMAS DE
INFORMAÇÃO84
8484
84SISTEMAS DEINFORMAÇÃO
8484SISTEMAS DE
INFORMAÇÃO84
8484
84SISTEMAS DEINFORMAÇÃO
8484
8484SISTEMAS DE
INFORMAÇÃO84
84SISTEMAS DEINFORMAÇÃO
8484
84
SISTEMAS DEINFORMAÇÃO
8484
8484 84SISTEMAS DEINFORMAÇÃO
8484
8484SISTEMAS DE
INFORMAÇÃO84
84SISTEMAS DEINFORMAÇÃO
8484
8484SISTEMAS DE
INFORMAÇÃO84
8484
84SISTEMAS DEINFORMAÇÃO
8484SISTEMAS DE
INFORMAÇÃO84
8484
84SISTEMAS DEINFORMAÇÃO
848484SISTEMAS DE
INFORMAÇÃO84
8484
84SISTEMAS DEINFORMAÇÃO
8484SISTEMAS DE
INFORMAÇÃO84
8484
84SISTEMAS DEINFORMAÇÃO
8484
8484SISTEMAS DE
INFORMAÇÃO84
84SISTEMAS DEINFORMAÇÃO
8484
8484SISTEMAS DE
INFORMAÇÃO84
8484
Um exemplo pouco mais complexo• Qual é o problema do código apresentado?
• Código duplicado para ordenação.
• E se tivesse que ordenar por outros critérios?
• Problema … mais código repetido!
• Solução: interface!
• manter o código de comparação em um único método
• manter em métodos diferentes somente os trechos diferentes.
SISTEMAS DEINFORMAÇÃO
8585
8585SISTEMAS DE
INFORMAÇÃO85
8585
85SISTEMAS DEINFORMAÇÃO
8585SISTEMAS DE
INFORMAÇÃO85
8585
85SISTEMAS DEINFORMAÇÃO
8585
8585SISTEMAS DE
INFORMAÇÃO85
85SISTEMAS DEINFORMAÇÃO
8585
85
SISTEMAS DEINFORMAÇÃO
8585
8585 85SISTEMAS DEINFORMAÇÃO
8585
8585SISTEMAS DE
INFORMAÇÃO85
85SISTEMAS DEINFORMAÇÃO
8585
8585SISTEMAS DE
INFORMAÇÃO85
8585
85SISTEMAS DEINFORMAÇÃO
8585SISTEMAS DE
INFORMAÇÃO85
8585
85SISTEMAS DEINFORMAÇÃO
858585SISTEMAS DE
INFORMAÇÃO85
8585
85SISTEMAS DEINFORMAÇÃO
8585SISTEMAS DE
INFORMAÇÃO85
8585
85SISTEMAS DEINFORMAÇÃO
8585
8585SISTEMAS DE
INFORMAÇÃO85
85SISTEMAS DEINFORMAÇÃO
8585
8585SISTEMAS DE
INFORMAÇÃO85
8585
Um exemplo pouco mais complexointerface ComparadorDeFrutas{ boolean ehMenor (Fruta a, Fruta b);}
class ComparaPreco implements ComparadorDeFrutas{ public boolean ehMenor (Fruta a, Fruta b) {return (a.preco < b.preco);}}
class ComparaPeso implements ComparadorDeFrutas{ public boolean ehMenor (Fruta a, Fruta b) {return (a.peso < b.peso);}}
class ComparaNome implements ComparadorDeFrutas{ public boolean ehMenor (Fruta a, Fruta b) {return (a.nome.compareTo(b.nome)<
0);}}
SISTEMAS DEINFORMAÇÃO
8686
8686SISTEMAS DE
INFORMAÇÃO86
8686
86SISTEMAS DEINFORMAÇÃO
8686SISTEMAS DE
INFORMAÇÃO86
8686
86SISTEMAS DEINFORMAÇÃO
8686
8686SISTEMAS DE
INFORMAÇÃO86
86SISTEMAS DEINFORMAÇÃO
8686
86
SISTEMAS DEINFORMAÇÃO
8686
8686 86SISTEMAS DEINFORMAÇÃO
8686
8686SISTEMAS DE
INFORMAÇÃO86
86SISTEMAS DEINFORMAÇÃO
8686
8686SISTEMAS DE
INFORMAÇÃO86
8686
86SISTEMAS DEINFORMAÇÃO
8686SISTEMAS DE
INFORMAÇÃO86
8686
86SISTEMAS DEINFORMAÇÃO
868686SISTEMAS DE
INFORMAÇÃO86
8686
86SISTEMAS DEINFORMAÇÃO
8686SISTEMAS DE
INFORMAÇÃO86
8686
86SISTEMAS DEINFORMAÇÃO
8686
8686SISTEMAS DE
INFORMAÇÃO86
86SISTEMAS DEINFORMAÇÃO
8686
8686SISTEMAS DE
INFORMAÇÃO86
8686
Um exemplo pouco mais complexoclass Quitanda2{ // define array e construtor
// imprime frutas
// ordena – somente um método para ordenar!!! // método principal que invoca os demais
}
SISTEMAS DEINFORMAÇÃO
8787
8787SISTEMAS DE
INFORMAÇÃO87
8787
87SISTEMAS DEINFORMAÇÃO
8787SISTEMAS DE
INFORMAÇÃO87
8787
87SISTEMAS DEINFORMAÇÃO
8787
8787SISTEMAS DE
INFORMAÇÃO87
87SISTEMAS DEINFORMAÇÃO
8787
87
SISTEMAS DEINFORMAÇÃO
8787
8787 87SISTEMAS DEINFORMAÇÃO
8787
8787SISTEMAS DE
INFORMAÇÃO87
87SISTEMAS DEINFORMAÇÃO
8787
8787SISTEMAS DE
INFORMAÇÃO87
8787
87SISTEMAS DEINFORMAÇÃO
8787SISTEMAS DE
INFORMAÇÃO87
8787
87SISTEMAS DEINFORMAÇÃO
878787SISTEMAS DE
INFORMAÇÃO87
8787
87SISTEMAS DEINFORMAÇÃO
8787SISTEMAS DE
INFORMAÇÃO87
8787
87SISTEMAS DEINFORMAÇÃO
8787
8787SISTEMAS DE
INFORMAÇÃO87
87SISTEMAS DEINFORMAÇÃO
8787
8787SISTEMAS DE
INFORMAÇÃO87
8787
Um exemplo pouco mais complexoclass Quitanda2{ // define array e construtor // imprime frutas // ordena – somente um método para ordenar!!! void ordena (ComparadorDeFrutas c) { int ivet, isubv; Fruta frutaAInserir; for (ivet=1; ivet < frutas.length; ivet++) { frutaAInserir = frutas[ivet]; isubv = ivet; while ((isubv > 0) && (c.ehMenor(frutaAInserir, frutas [isubv 1]) )) { frutas[isubv] = frutas[isubv 1]; isubv; } frutas [isubv] = frutaAInserir;
} }
// método principal que invoca os demais
}
SISTEMAS DEINFORMAÇÃO
8888
8888SISTEMAS DE
INFORMAÇÃO88
8888
88SISTEMAS DEINFORMAÇÃO
8888SISTEMAS DE
INFORMAÇÃO88
8888
88SISTEMAS DEINFORMAÇÃO
8888
8888SISTEMAS DE
INFORMAÇÃO88
88SISTEMAS DEINFORMAÇÃO
8888
88
SISTEMAS DEINFORMAÇÃO
8888
8888 88SISTEMAS DEINFORMAÇÃO
8888
8888SISTEMAS DE
INFORMAÇÃO88
88SISTEMAS DEINFORMAÇÃO
8888
8888SISTEMAS DE
INFORMAÇÃO88
8888
88SISTEMAS DEINFORMAÇÃO
8888SISTEMAS DE
INFORMAÇÃO88
8888
88SISTEMAS DEINFORMAÇÃO
888888SISTEMAS DE
INFORMAÇÃO88
8888
88SISTEMAS DEINFORMAÇÃO
8888SISTEMAS DE
INFORMAÇÃO88
8888
88SISTEMAS DEINFORMAÇÃO
8888
8888SISTEMAS DE
INFORMAÇÃO88
88SISTEMAS DEINFORMAÇÃO
8888
8888SISTEMAS DE
INFORMAÇÃO88
8888
Um exemplo pouco mais complexoclass Quitanda2{ // métodos anteriores // método principal que invoca os demaispublic static void main (String [] args) { Quitanda2 xepa = new Quitanda2(); System.out.println("Frutas desordenadas"); xepa.imprime(); System.out.println("Em ordem de preço"); ComparadorDeFrutas cpr = new ComparaPreco(); xepa.ordena(cpr); xepa.imprime(); System.out.println("Em ordem de peso"); ComparadorDeFrutas cp = new ComparaPeso(); xepa.ordena(cp); xepa.imprime();
System.out.println("Em ordem alfabética de nome"); xepa.ordena(new ComparaNome ()); // forma super contraída de chamar o método ordena xepa.imprime(); }
}
SISTEMAS DEINFORMAÇÃO
8989
8989SISTEMAS DE
INFORMAÇÃO89
8989
89SISTEMAS DEINFORMAÇÃO
8989SISTEMAS DE
INFORMAÇÃO89
8989
89SISTEMAS DEINFORMAÇÃO
8989
8989SISTEMAS DE
INFORMAÇÃO89
89SISTEMAS DEINFORMAÇÃO
8989
89
SISTEMAS DEINFORMAÇÃO
8989
8989 89SISTEMAS DEINFORMAÇÃO
8989
8989SISTEMAS DE
INFORMAÇÃO89
89SISTEMAS DEINFORMAÇÃO
8989
8989SISTEMAS DE
INFORMAÇÃO89
8989
89SISTEMAS DEINFORMAÇÃO
8989SISTEMAS DE
INFORMAÇÃO89
8989
89SISTEMAS DEINFORMAÇÃO
898989SISTEMAS DE
INFORMAÇÃO89
8989
89SISTEMAS DEINFORMAÇÃO
8989SISTEMAS DE
INFORMAÇÃO89
8989
89SISTEMAS DEINFORMAÇÃO
8989
8989SISTEMAS DE
INFORMAÇÃO89
89SISTEMAS DEINFORMAÇÃO
8989
8989SISTEMAS DE
INFORMAÇÃO89
8989
Um exemplo pouco mais complexoclass Quitanda2{ // métodos anteriores // método principal que invoca os demaispublic static void main (String [] args) { Quitanda2 xepa = new Quitanda2(); System.out.println("Frutas desordenadas"); xepa.imprime(); System.out.println("Em ordem de preço"); ComparadorDeFrutas cpr = new ComparaPreco(); xepa.ordena(cpr); xepa.imprime(); System.out.println("Em ordem de peso"); ComparadorDeFrutas cp = new ComparaPeso(); xepa.ordena(cp); xepa.imprime();
System.out.println("Em ordem alfabética de nome"); xepa.ordena(new ComparaNome ()); // forma super contraída de chamar o método ordena xepa.imprime(); }
}
SISTEMAS DEINFORMAÇÃO
9090
9090SISTEMAS DE
INFORMAÇÃO90
9090
90SISTEMAS DEINFORMAÇÃO
9090SISTEMAS DE
INFORMAÇÃO90
9090
90SISTEMAS DEINFORMAÇÃO
9090
9090SISTEMAS DE
INFORMAÇÃO90
90SISTEMAS DEINFORMAÇÃO
9090
90
SISTEMAS DEINFORMAÇÃO
9090
9090 90SISTEMAS DEINFORMAÇÃO
9090
9090SISTEMAS DE
INFORMAÇÃO90
90SISTEMAS DEINFORMAÇÃO
9090
9090SISTEMAS DE
INFORMAÇÃO90
9090
90SISTEMAS DEINFORMAÇÃO
9090SISTEMAS DE
INFORMAÇÃO90
9090
90SISTEMAS DEINFORMAÇÃO
909090SISTEMAS DE
INFORMAÇÃO90
9090
90SISTEMAS DEINFORMAÇÃO
9090SISTEMAS DE
INFORMAÇÃO90
9090
90SISTEMAS DEINFORMAÇÃO
9090
9090SISTEMAS DE
INFORMAÇÃO90
90SISTEMAS DEINFORMAÇÃO
9090
9090SISTEMAS DE
INFORMAÇÃO90
9090
Por que interfaces é importante???• Se objetos fazem referência a interfaces e não a classes:
• mais fácil alterar as classes de um sistema sem ter que alterar aquelas que as utilizam (se a assinatura do método se mantém igual)
• fácil implementar polimorfismo de comportamento: classes que mudam de comportamento - chaveamento de comportamento pode ser feito durante compilação ou durante execução.
• desenvolvimento de sistemas grandes, envolvendo muitos programadores – todos obedecem as interfaces – integração posterior mais fácil.
• eliminação de código repetido.
SISTEMAS DEINFORMAÇÃO
9191
9191SISTEMAS DE
INFORMAÇÃO91
9191
91SISTEMAS DEINFORMAÇÃO
9191SISTEMAS DE
INFORMAÇÃO91
9191
91SISTEMAS DEINFORMAÇÃO
9191
9191SISTEMAS DE
INFORMAÇÃO91
91SISTEMAS DEINFORMAÇÃO
9191
91
SISTEMAS DEINFORMAÇÃO
9191
9191 91SISTEMAS DEINFORMAÇÃO
9191
9191SISTEMAS DE
INFORMAÇÃO91
91SISTEMAS DEINFORMAÇÃO
9191
9191SISTEMAS DE
INFORMAÇÃO91
9191
91SISTEMAS DEINFORMAÇÃO
9191SISTEMAS DE
INFORMAÇÃO91
9191
91SISTEMAS DEINFORMAÇÃO
919191SISTEMAS DE
INFORMAÇÃO91
9191
91SISTEMAS DEINFORMAÇÃO
9191SISTEMAS DE
INFORMAÇÃO91
9191
91SISTEMAS DEINFORMAÇÃO
9191
9191SISTEMAS DE
INFORMAÇÃO91
91SISTEMAS DEINFORMAÇÃO
9191
9191SISTEMAS DE
INFORMAÇÃO91
9191
Programe para as interfaces,
não para as implementações!!!
SISTEMAS DEINFORMAÇÃO
9292
9292SISTEMAS DE
INFORMAÇÃO92
9292
92SISTEMAS DEINFORMAÇÃO
9292SISTEMAS DE
INFORMAÇÃO92
9292
92SISTEMAS DEINFORMAÇÃO
9292
9292SISTEMAS DE
INFORMAÇÃO92
92SISTEMAS DEINFORMAÇÃO
9292
92
SISTEMAS DEINFORMAÇÃO
9292
9292 92SISTEMAS DEINFORMAÇÃO
9292
9292SISTEMAS DE
INFORMAÇÃO92
92SISTEMAS DEINFORMAÇÃO
9292
9292SISTEMAS DE
INFORMAÇÃO92
9292
92SISTEMAS DEINFORMAÇÃO
9292SISTEMAS DE
INFORMAÇÃO92
9292
92SISTEMAS DEINFORMAÇÃO
929292SISTEMAS DE
INFORMAÇÃO92
9292
92SISTEMAS DEINFORMAÇÃO
9292SISTEMAS DE
INFORMAÇÃO92
9292
92SISTEMAS DEINFORMAÇÃO
9292
9292SISTEMAS DE
INFORMAÇÃO92
92SISTEMAS DEINFORMAÇÃO
9292
9292SISTEMAS DE
INFORMAÇÃO92
9292
Observação
• Interfaces Java também podem definir constantes de classe (atributos static final)– Na interface você NÃO precisa colocar o static
final
• Ex:
interface Cores{int branco = 0;int preto = 255;
}
SISTEMAS DEINFORMAÇÃO
9393
9393SISTEMAS DE
INFORMAÇÃO93
9393
93SISTEMAS DEINFORMAÇÃO
9393SISTEMAS DE
INFORMAÇÃO93
9393
93SISTEMAS DEINFORMAÇÃO
9393
9393SISTEMAS DE
INFORMAÇÃO93
93SISTEMAS DEINFORMAÇÃO
9393
93
SISTEMAS DEINFORMAÇÃO
9393
9393 93SISTEMAS DEINFORMAÇÃO
9393
9393SISTEMAS DE
INFORMAÇÃO93
93SISTEMAS DEINFORMAÇÃO
9393
9393SISTEMAS DE
INFORMAÇÃO93
9393
93SISTEMAS DEINFORMAÇÃO
9393SISTEMAS DE
INFORMAÇÃO93
9393
93SISTEMAS DEINFORMAÇÃO
939393SISTEMAS DE
INFORMAÇÃO93
9393
93SISTEMAS DEINFORMAÇÃO
9393SISTEMAS DE
INFORMAÇÃO93
9393
93SISTEMAS DEINFORMAÇÃO
9393
9393SISTEMAS DE
INFORMAÇÃO93
93SISTEMAS DEINFORMAÇÃO
9393
9393SISTEMAS DE
INFORMAÇÃO93
9393
Professoras:Ariane Machado LimaFátima L. S. Nunes
Interfaces