https://github.com/emersonpessoa01/produtos-coursera
Tarefa avaliada por colega: Diferentes tipos de produto do módulo4
https://github.com/emersonpessoa01/produtos-coursera
eclipse-ide equals hashcode hashmap java test
Last synced: about 1 month ago
JSON representation
Tarefa avaliada por colega: Diferentes tipos de produto do módulo4
- Host: GitHub
- URL: https://github.com/emersonpessoa01/produtos-coursera
- Owner: emersonpessoa01
- Created: 2024-07-18T18:15:48.000Z (10 months ago)
- Default Branch: master
- Last Pushed: 2024-07-19T15:44:03.000Z (10 months ago)
- Last Synced: 2025-01-31T11:28:13.301Z (3 months ago)
- Topics: eclipse-ide, equals, hashcode, hashmap, java, test
- Language: Java
- Homepage:
- Size: 6.84 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Tarefa avaliada por colega: Diferentes tipos de produto
Crie uma classe chamada Produto que deve possuir um nome, um código e um preço. Sobrescreva os métodos equals() e hashCode() de Object (veja seção sobre esses métodos), de forma a serem considerados iguais instancias de Produto que possuam o mesmo código.
Crie uma classe chamada ProdutoComTamanho que estenda a classe Produto. Essa classe deve possuir uma informação adicional de tamanho. Um exemplo seria o tamanho de uma roupa ou a numeração de um calçado. Método equals() e hashCode() devem ser sobrescritos de forma que um produto com mesmo código e tamanhos diferentes são considerados diferentes.
Crie uma classe CarrinhoDeCompras que armazene em um atributo interno do tipo HashMap cada produto adicionado no carrinho e sua respectiva quantidade. O método adicionaProduto() deve receber a instancia do produto e a quantidade. Caso o produto já exista no HashMap, a quantidade deve ser somada a que já existe no carrinho. Deve haver também um método removeProduto() que também recebe a instancia do produto e a quantidade a ser removida. Observe que produtos de tamanhos diferentes devem ser considerados como produtos diferentes no carrinho. O carrinho deve possuir um método que calcula o valor total da compra.
Crie testes com Unit para a classe Produto, para a classe ProdutoComTamanho e para a classe CarrinhoDeCompras. Os testes de cada classe devem ser colocados em classes separadas e devem estar em um diretório de código diferente das classes de produção.
Visão geral dos critérios de avaliação
Serão verificados se os itens pedidos no enunciado foram cumpridos. Procure entregar um código organizado pois isso também será avaliado.Métodos Equals e hashCode
O método equals() é utilizado para a comparação de objetos. Ele é definido na classe Object e pode ser sobrescrito em qualquer classe que possua uma lógica diferente.
O método hashCode() também é definido na classe Object e retorna o código hash de um objeto, que é utilizado em várias classes que implementam estruturas de dados. Ele precisa obedecer a seguinte regra: quando o método equals() retornar true, o retorno de hashCode() desses objetos precisa ser igual. Mas se o retorno do hashCode() for igual, não necessariamente os objetos são iguais, ou seja, o equals() pode retornar true ou false.É importante respeitar essa regra para que algumas classes como HashSet e HashMap funcionem corretamente!