Professional Documents
Culture Documents
AT02 IntroOOD (30 113)
AT02 IntroOOD (30 113)
AT02 IntroOOD (30 113)
Noção de Interface
31 Que operações criar?
- Vamos listar as principais operações
void reset()
o Limpa a lista de amigos, para usar quando queremos uma nova
lista
FriendsBook
Referência: DI FCT UNL
FriendsBook
34
int numDeAmigos()
o Devolve o número de amigos na rede social
String amigoMaisAborrecido()
o Devolve o nome da pessoa mais aborrecida
o Pre: numDeAmigos()>0 – a rede social não está vazia
boolean temProximo()
o Devolve true se houver mais pessoas com personalidade tipo a iterar,
ou false caso contrário
String proximo()
o Devolve o nome da próxima pessoa com personalidade tipo a iterar,
avançando com o iterador
o Pre: temProximo()
String getNome()
o Devolve o nome da pessoa
int getPersonalidade()
o Devolve um inteiro representando o traço de personalidade
dominante, com os valores INTELIGENTE, ESTUPIDO,
BANDIDO, ou ANJINHO
double getAborrecimento()
o Devolve o valor da “distância” dos votos acumulados à origem
usando o teorema de Pitágoras, sendo a “distância” a “hipotenusa” e
os valores acumulados de benefícios próprios e alheios os “catetos”
String getDescricao()
o Devolve a descrição da acção
int getBeneficioProprio()
o Devolve o total acumulado de votos nos benefícios próprios
int getBeneficioOutros()
o Devolve o total acumulado de votos nos benefícios causados a
outros
Referência:
DI FCT UNL
Assinatura de um método
43
Referência:
DI FCT UNL
Erros típicos com interfaces
57
Referência:
DI FCT UNL
58 Curta introdução aos packages
Referência:
DI FCT UNL
O que é um package?
59
Referência:
DI FCT UNL
packages: declaração
60
Referência:
DI FCT UNL
Esqueleto da classe Main
63
// ...
FriendsBook Referência:
DI FCT UNL
Declaramos variáveis com o tipo definido
pela interface, mas instanciamos essas
variáveis com uma classe que a implementa
64
FriendsBook Referência:
DI FCT UNL
Interface FriendsBook
65
void reset();
boolean existeAmigo(String nome);
void adAmigo(String nome);
void removAmigo(String nome);
boolean existeAcao(String nome, String descricao);
void adAcao(String nome, String descricao);
void vota(String nome, String descricao,
boolean bomParaPessoa, boolean bomParaOutros);
// continua...
}
FriendsBook Referência:
DI FCT UNL
Interface FriendsBook
66
Atenção! Quando estamos a definir interfaces devemos ter em conta que nas constantes
temos, por omissão, os seguintes modificadores:
public static final
é equivalente a:
public static final int INTELLIGENTE =0,ANJINHO =1,BANDIDO =2,ESTUPIDO =3;
FriendsBook Referência:
DI FCT UNL
Interface FriendsBook
67
void reset();
boolean existeAmigo(String nome);
void adAmigo(String nome);
void removAmigo(String nome);
boolean existeAcao(String nome, String descricao);
void adAcao(String nome, String descricao);
void vota(String nome, String descricao,
boolean bomParaPessoa, boolean bomParaOutros);
// continua...
}
FriendsBook Referência:
DI FCT UNL
Interface FriendsBook
68
é equivalente a:
public abstract void inicializar(int tipo);
FriendsBook Referência:
DI FCT UNL
Esqueleto da classe
FriendsBookClass
69
public FriendsBookClass(){...}
public void reset() {...}
public boolean existeAmigo(String nome) {...}
public void adAmigo(String nome) {...}
public void removAmigo(String nome) {...}
public boolean existeAcao(String nome, String descricao){..}
// continua...
// Continuação da implementação
public void adAcao(String nome, String descricao){...}
public void vota(String nome, String descricao,
boolean bomParaPessoa, boolean bomParaOutros){...}
public int numDeAmigos() {...}
public String amigoMaisAborrecido() {...}
// Métodos auxiliares
private int indice(String nome) {...}
private void redimensionar() {...}
}
FriendsBook Referência:
DI FCT UNL
Documento de partida
Fase 1
Interface Pessoa
Modelação
Fase 2
Construção e Validação
Entregáveis
71
FriendsBook Referência:
DI FCT UNL
Documento de partida
Entregáveis
72
FriendsBook Referência:
DI FCT UNL
Documento de partida
Fase 1
Interface Acao
Modelação
Fase 2
Construção e Validação
Entregáveis
73
FriendsBook Referência:
DI FCT UNL
Documento de partida
Entregáveis
74
FriendsBook Referência:
DI FCT UNL
75 Iterador com filtro
Referência:
DI FCT UNL
Interface FriendsBook
76
...
...
}
Referência:
DI FCT UNL
Esqueleto da classe
FriendsBookClass
77
public FriendsBookClass(){
amigo = new Pessoa[DEFAULT];
contador = 0;
actual = 0;
tipo = -1;
}
...
// Métodos para a iteração
public void inicializar(int tipo) {...}
public boolean temProximo() {...}
public Pessoa proximo() {...} Referência:
DI FCT UNL
Métodos para iteração (simples)
78
Referência:
DI FCT UNL
Métodos para iteração (filtro)
79
Referência:
DI FCT UNL
Temos aqui algum código repetido
80
actual = -1
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
83
actual = -1
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
84
actual = 0
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
85
actual = 0
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
86
actual = 0
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
87
actual = 1
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
88
actual = 1
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
89
actual = 2
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
90
actual = 2
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
91
actual = 2
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
92
actual = 2
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
93
actual = 2
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
94
actual = 2
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
95
actual = 3
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
96
actual = 3
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
97
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
98
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
99
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
100
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
101
actual = 4
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
102
actual = 4
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
103
actual = 5
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
104
actual = 5
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
105
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
106
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
107
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
108
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
109
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
110
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
111
actual = 7
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
112
actual = 7
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL
Métodos para iteração
113
actual = 7
amigo = B E I E I A A contador = 7
Referência:
DI FCT UNL