Prévia do material em texto
27/04/22, 10:05 Avaliação Final (Discursiva) - Individual 1/2 Prova Impressa GABARITO | Avaliação Final (Discursiva) - Individual (Cod.:746063) Peso da Avaliação 4,00 Prova 43889441 Qtd. de Questões 2 Nota 6,75 O desenvolvimento de software é uma tarefa árdua e que necessita de muito controle para se obter um produto no tempo e custo planejados. Além disso, é importante que se analise e projete bem a arquitetura do software, possibilitando que uma futura manutenção não seja tão trabalhosa, através de código-fonte mais legível e reutilizável. Neste sentido, o paradigma da orientação a objetos surgiu para evitar muitos problemas existentes na programação procedural. Disserte sobre como e o porquê a programação orientada a objetos possibilita melhor legibilidade e reutilização de código-fonte. Resposta esperada A melhor legibilidade do código-fonte, seguindo as boas práticas da orientação a objetos, ocorre ao se evitar criação de variáveis indevidas, e principalmente em métodos que possuem uma única responsabilidade, sendo mais específicos e mais fáceis de se entender. Além disso, a reutilização de código ocorre justamente no uso correto de classes, e métodos com responsabilidades específicas, por exemplo, um método que realiza um cálculo, e este é chamado (invocado) em outros pontos do código-fonte. Neste sentido, temos um baixo grau de acoplamento e maior coesão. Minha resposta A melhor legibilidade do código-fonte, seguindo as boas práticas da orientação a objetos, propõe uma representação mais fácil de ser compreendida, pois a relação de cada elemento em termos de um objeto, ou classe, pode ser comparado ao mundo real e onde ocorre ao se evitar criação de variáveis indevidas, e principalmente em métodos que possuem uma única responsabilidade, sendo mais específicos e mais fáceis de se entender. Além disso, a reutilização de código ocorre justamente no uso correto de classes, e métodos com responsabilidades específicas, por exemplo, um método que realiza um cálculo, e este é chamado Ivocado em outros pontos do código-fonte. Neste sentido, temos um baixo grau de acoplamento e maior coesão O collections framework do Java possui alguns tipos que podem ser comparados com arrays, porém estes possuem mais recursos, eficiência e vantagens em relação ao array ou vetor normal. Além disso, o collections framework permite ordenar os objetos através de algum critério desejado, bastando implementá-lo. Um exemplo deste tipo de ordenação seria por nome, utilizando-se o atributo nome de uma classe Pessoa. Para desenvolver a comparação, deve ser feita a implementação da interface Comparable na classe desejada, além do método "compareTo". Neste contexto, desenvolva uma classe qualquer, na linguagem de programação Java, que realize a ordenação de uma lista de objetos através da interface Comparable. Apresente as duas classes criadas, uma com a implementação da interface VOLTAR A+ Alterar modo de visualização 1 2 27/04/22, 10:05 Avaliação Final (Discursiva) - Individual 2/2 Comparable, e a outra com um exemplo de execução da ordenação de uma lista do objeto do tipo da classe com implementação Comparable. Resposta esperada O acadêmico deve desenvolver uma classe com a interface Comparable, como a classe Carro implements Comparable a seguir exemplificada, na qual deve ter obrigatoriamente o método "compareTo". Além disso, deve ser desenvolvida uma segunda classe, conforme exemplo “ExemploComparable”, para instanciar a classe anterior (Comparable), como nas linhas 9 a 12, adicionando-a à lista (lista.add), linhas 16 a 20, e então invocar o método sort (“Collections.sort(lista)”). Minha resposta package Classes; /** * * @author andre.santos */ public class Pessoa implements Comparable { private int id; private String nome; public Pessoa(int id, String nome){ super(); this.id = id; this.nome = nome; } public int getId(){ return id; } public void setId(int id) { this.id = id; } public String getNome(){ return nome; } public void setNome( String nome){ this.nome = nome; } public int compareTo(Pessoa p){ return this.getNome() .compareTo(p.getNome()); } } import java.util.ArrayList; import java.util.Collections; import java.util.List; import Classes.Pessoa; public class Principal { public static void main(String[] args) { Pessoa pessoa1 = new Pessoa(1,"Pedro"); Pessoa pessoa2 = new Pessoa(2,"Andre"); Pessoa pessoa3 = new Pessoa(3,"Jorge"); Pessoa pessoa4 = new Pessoa(4,"Bruno"); Pessoa pessoa5 = new Pessoa(5,"Bruno Alves"); Pessoa pessoa6 = new Pessoa(6,"Bruno Chagas"); Pessoa pessoa7 = new Pessoa(7,"Adria"); List lista = new ArrayList(); lista.add(pessoa1); lista.add(pessoa2); lista.add(pessoa3); lista.add(pessoa4); lista.add(pessoa5); lista.add(pessoa6); lista.add(pessoa7); //Nomes Ordenados /* Resultado Esperado Nome : Adria Nome : Andre Nome : Bruno Nome : Bruno Alves Nome : Bruno Chagas Nome : Jorge Nome : Pedro */ Collections.sort(lista ); for(Pessoa p : lista) { System.out.println("Nome : " + p.getNome().toString() ); } } } Imprimir