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).

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:
  1. 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 interface Comparavel.
  2. 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.

Exercícios relacionados