m (→Exemplo de Aplicação) |
(→Problema) |
||
Line 2: | Line 2: | ||
== Problema == | == Problema == | ||
− | # Considere a tabela da Aula | + | # Considere a tabela da [[Polimorfismo, Interfaces, Classes Abstractas/Exercício 02: Tabelas e Predicados|Aula Prática 05]]. Redefina a classe como sendo comparável. Diz-se que uma tabela é menor/igual/maior que outra quando se verificar a relação menor/igual/maior entre as somas dos elementos de cada uma. |
# Considere ainda o caso da alínea anterior. Defina agora dois comparadores (devem ser implementados como classes internas da tabela) que estabelecem as relações de comparação relativamente (i) aos máximos das tabelas e (ii) ao número de elementos (independentemente dos valores). | # Considere ainda o caso da alínea anterior. Defina agora dois comparadores (devem ser implementados como classes internas da tabela) que estabelecem as relações de comparação relativamente (i) aos máximos das tabelas e (ii) ao número de elementos (independentemente dos valores). | ||
# Considere agora, em lugar de tabelas de inteiros, que as tabelas contêm gatos (classe definida acima). Altere o código da alínea 2(i) para que funcione com as tabelas de gatos. | # Considere agora, em lugar de tabelas de inteiros, que as tabelas contêm gatos (classe definida acima). Altere o código da alínea 2(i) para que funcione com as tabelas de gatos. |
Para este caso, é necessário definir a classe Table como implementando Comparable.
Ficheiro Table.java |
---|
{{{2}}} |
Diagrama de classes |
---|
(por lapso, o diagrama UML omite o método contains, mas o resto está correcto) |
Notar que as classes internas são static e que apenas estão contidas na classe Table por conveniência de ocultação de código.
Ficheiro Table.java |
---|
{{{2}}} |
(a publicar)
Ficheiro Application.java |
---|
{{{2}}} |