Questão 2. Considere a interface abaixo:
package br.ufop.avaliacaoInterface;
public interface Comparavel {
/**
- Assinatura de método que toda classe que quer permitir
- a comparacão entre seus objetos precisa implementar.
- @param o - Objeto que será comparado.
- @return 0 se os objetos forem iguais.
-
0 se o objeto recebido é menor que o objeto que será comparado.
- < 0 se o objeto recebido é maior que o objeto que será comparado.
*/
public abstract int comparar(Object ०);
}
a) Crie uma classe que estende o RepObjects definido na Questão 1. Essa classe deve fornecer a possibilidade de ordenar os objetos armazenados considerando a interface Comparavel. Defina uma classe concreta que implemente a interface Comparavel ( 10 pontos).
package br.ufop.avaliacaoInterface;
public interface Comparavel {
/**
0 se o objeto recebido é menor que o objeto que será comparado.
*/
public abstract int comparar(Object ०);
}
a) Crie uma classe que estende o RepObjects definido na Questão 1. Essa classe deve fornecer a possibilidade de ordenar os objetos armazenados considerando a interface Comparavel. Defina uma classe concreta que implemente a interface Comparavel ( 10 pontos).
Passo 1
Beleza, vamos dar uma olhada no que a questão está pedindo. A gente tem uma interface chamada
Comparavel
que define como comparar objetos. A tarefa aqui é criar duas coisas:- Uma classe que estende
RepObjects
(definida na Questão 1, mas vamos supor que ela gerencia uma coleção de objetos) e que permite ordenar esses objetos usando a interfaceComparavel
. - Uma classe concreta que implementa a interface
Comparavel
, ou seja, que define como dois objetos dessa classe serão comparados.
Para isso, vamos precisar entender como interfaces funcionam em Java, como estender classes e como implementar métodos de comparação.
Passo 2
Primeiro, vamos criar a classe que estende
RepObjects
. Como não temos a definição de RepObjects
, vamos supor que ela é uma classe que gerencia uma lista de objetos genéricos. Nossa nova classe, vamos chamá-la de OrdenavelRepObjects
, vai herdar dessa classe e adicionar a funcionalidade de ordenação.Passo 3
Para permitir a ordenação dos objetos armazenados, precisamos usar o método
comparar
da interface Comparavel
. Vamos implementar um método que ordena a lista de objetos usando esse método de comparação. Podemos usar, por exemplo, o algoritmo de ordenação Bubble Sort para manter as coisas simples.Passo 4
Agora, vamos criar uma classe concreta que implementa a interface
Comparavel
. Vamos supor que estamos trabalhando com uma classe chamada Produto
, que tem um atributo preco
. Vamos implementar o método comparar
para comparar produtos com base no preço.Passo 5
Vamos colocar tudo junto. Primeiro, a classe
OrdenavelRepObjects
que estende RepObjects
e adiciona a funcionalidade de ordenação. Em seguida, a classe Produto
que implementa Comparavel
e define como comparar dois produtos.Resposta
Acabamos de criar a classe
OrdenavelRepObjects
que herda de RepObjects
e adiciona a capacidade de ordenar os objetos usando a interface Comparavel
. Além disso, definimos a classe Produto
que implementa Comparavel
, permitindo comparar produtos com base no preço. Agora, você pode adicionar objetos Produto
à OrdenavelRepObjects
e chamar o método ordenar()
para organizá-los do menor para o maior preço.