Difference between revisions of "Classes Internas (Java)/Exercício 01: Interfaces java.lang.Comparable e java.util.Comparator"

From Wiki**3

< Classes Internas (Java)
m (Exemplo de Aplicação)
(Problema)
Line 2: Line 2:
 
== Problema ==
 
== Problema ==
  
# Considere a tabela da Aula Pr&aacute;tica 04. Redefina a classe como sendo compar&aacute;vel. Diz-se que uma tabela &eacute; menor/igual/maior que outra quando se verificar a rela&ccedil;&atilde;o menor/igual/maior entre as somas dos elementos de cada uma.
+
# Considere a tabela da [[Polimorfismo, Interfaces, Classes Abstractas/Exercício 02: Tabelas e Predicados|Aula Prática 05]]. Redefina a classe como sendo compar&aacute;vel. Diz-se que uma tabela &eacute; menor/igual/maior que outra quando se verificar a rela&ccedil;&atilde;o menor/igual/maior entre as somas dos elementos de cada uma.
 
# Considere ainda o caso da al&iacute;nea anterior. Defina agora dois comparadores (devem ser implementados como classes internas da tabela) que estabelecem as rela&ccedil;&otilde;es de compara&ccedil;&atilde;o relativamente (i) aos m&aacute;ximos das tabelas e (ii) ao n&uacute;mero de elementos (independentemente dos valores).
 
# Considere ainda o caso da al&iacute;nea anterior. Defina agora dois comparadores (devem ser implementados como classes internas da tabela) que estabelecem as rela&ccedil;&otilde;es de compara&ccedil;&atilde;o relativamente (i) aos m&aacute;ximos das tabelas e (ii) ao n&uacute;mero de elementos (independentemente dos valores).
 
# Considere agora, em lugar de tabelas de inteiros, que as tabelas cont&ecirc;m gatos (classe definida acima). Altere o c&oacute;digo da al&iacute;nea 2(i) para que funcione com as tabelas de gatos.
 
# Considere agora, em lugar de tabelas de inteiros, que as tabelas cont&ecirc;m gatos (classe definida acima). Altere o c&oacute;digo da al&iacute;nea 2(i) para que funcione com as tabelas de gatos.

Revision as of 11:14, 25 October 2018

Problema

  1. Considere a tabela da 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.
  2. 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).
  3. 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.

Solução

1. Tabela comparável

Para este caso, é necessário definir a classe Table como implementando Comparable.

Ficheiro Table.java
{{{2}}}

2. Comparadores de Máximo e Comprimento

Diagrama de classes

(por lapso, o diagrama UML omite o método contains, mas o resto está correcto) PO-Interfaces-Comparable-Comparator.png

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}}}

3. Comparador de Tabelas de Gatos

(a publicar)

Exemplo de Aplicação

Ficheiro Application.java
{{{2}}}