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.