(→Código da Solução) |
(→Código da Solução) |
||
Line 34: | Line 34: | ||
public class CatRegistry { | public class CatRegistry { | ||
− | private Map<String, Cat> | + | private Map<String, Cat> cats = new HashMap<>(); |
− | |||
− | |||
− | |||
− | |||
public void put(Cat cat) throws DuplicateCatException { | public void put(Cat cat) throws DuplicateCatException { |
Modele em UML (incluindo construtores) e implemente em Java uma classe CatRegistry cujas instâncias registam gatos (classe Cat). A classe CatRegistry deve manter um mapa de gatos, indexando-os pelos respectivos nomes. Não é necessário implementar a classe Cat. Considere que a classe Cat tem atributos idade (age) e nome (name). Considere ainda que o construtor de Cat aceita os valores para os atributos mencionados e que os métodos de acesso (getters e setters) estão definidos.
A interface da classe CatRegistry contém os métodos de inserção (put) e consulta (get). O primeiro (put) aceita um gato e regista-o (se o nome do gato já tiver sido usado – por um gato com esse nome já existir no mapa – deve lançar a excepção DuplicateCatException); o segundo (get) aceita o nome de um gato e devolve o gato com esse nome a partir do mapa, caso exista, ou lança uma excepção (NoSuchCatException), se não existir.
[Expand] Diagrama UML |
---|
[Expand] Classe DuplicateCatException |
---|
[Expand] Classe NoSuchCatException |
---|
[Expand] Classe CatRegistry |
---|
A classe Cat (não pedida no exercício) poderia ser algo como se apresenta de seguida.
[Expand] Classe Cat |
---|