Buscar

Programação Orientada a Objetos: Legibilidade e Reutilização

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

07/02/23, 09:02 Avaliação Final (Discursiva) - Individual
about:blank 1/2
Prova Impressa
GABARITO | Avaliação Final (Discursiva) - Individual (Cod.:768338)
Peso da Avaliação 4,00
Prova 57788456
Qtd. de Questões 2
Nota 10,00
A comparação de igualdade entre duas instâncias de uma mesma classe pode ser definida na linguagem de programação Java através do polimorfismo. A sobrescrição do 
método equals(), existente na classe Object é sinalizada através da annotation @override e permite que o desenvolvedor defina seus próprios critérios de comparação através de 
atributos. Considerando o que foi exposto e a existência de uma classe chamada de Cachorro que possui um atributo nome, disserte sobre o código fonte da figura a seguir, 
explicando o que acontece em cada linha.
Resposta esperada
Na linha 19 está a anotação override, indicando que estamos usando o polimorfismo. Na linha 20 está a assinatura do método. Nas linhas 21 e 22 estamos perguntando se a
referência com a qual estamos comparando é a mesma. Se for, logicamente o equals retornará true. Nas linhas 23 e 24 é feita a pergunta se o objeto a ser comparado é null.
Se ele for, o método retorna falso. Nas linhas 25 e 26, é feita a verificação do tipo da classe que está vindo como parâmetro. Se os tipos forem diferentes, o método retorna
falso. Na linha 27, é feita conversão do object para Cachorro, para que se possa realizar a comparação do nome. Nas linhas 28 a 30, é feita a verificação de nome nulo. Se
um dos nomes for nulo e o outro não, retorna-se falso. Finalmente, a linha 31 pergunta se o nome do objeto atual não é igual ao nome do objeto que veio como parâmetro.
Se os dois forem diferentes, o método retorna falso e, caso a execução não entre em nenhuma das verificações anteriores, os nomes dos dois objetos são iguais e o método
retorna true.
Minha resposta
Na linha 21 a sobrescrição do método mantém a comparação de igualdade como definida na classe Object, ou seja, um objeto é igual a outro quando esse outro objeto é ele
mesmo. Na linha 23, que é executada caso a primeira condição não seja satisfeita, é verificada a nulidade do objeto comparado: caso seja nulo, o método equals retorna
false. Na linha 25 verifica-se a igualdade dos tipos os objetos comparados. Caso sejam instâncias de classes diferentes, o método retorna o valor false. Na linha 27 é feito
um casting (conversão) do objeto alvo da comparação para a classe do objeto atual, a Classe Cachorro. O objeto de comparação, agora tratado como sendo do tipo
Cachorro, será usado para as últimas verificações de igualdade, que agora utilizam os campos de ambos objetos na comparação. Nas linhas 28 e 29 é verificado se o nome
do objeto atual é nulo, e se o nome do objeto de comparação não o é, respectivamente. Caso o campo nome do objeto atual seja nulo e o campo nome do objeto comparado
também seja, a estrutura if mais externa (da linha 28) é executada sem retorno, seguindo o fluxo de execução a partir da linha 33, que retorna true para a comparação. De
outra forma, caso as duas condições (linhas 28 e 29) sejam verdadeiras, o método retorna false. Caso o objeto atual não tenha o campo nome nulo, na linha 31, com a
declaração else if, é verificado se os nomes de ambos objetos são diferentes. E sendo essa condição verdadeira, o método equals, finalmente, retorna false para a
comparação
Retorno da correção
Parabéns, acadêmico(a)! Sua resposta atingiu os objetivos da questão e você atingiu o esperado, demonstrando a competência da análise e síntese do assunto abordado,
apresentando excelentes argumentos próprios, com base nos materiais disponibilizados. Confira no quadro "Resposta esperada" a sugestão de resposta para esta questão.
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 programação orientada a objetos e bem pedida no contexto dos sistemas atuais. Um dos motivos que levam ela a ser tão requisitada é a reutilização do código fonte e a
capacidade de representação do sistema ser muito mais fiel ao que é o mundo real. A (POO) tem como 4 pilares principais, sendo elas: a Abstração (Que define uma
superclasse que não exerce nenhuma função do jeito que ela está, porém tem suas características herdadas obrigatoriamente por outra classe.) A Herança (Que ocorre a
reutilização de "sistemas" usados anteriormente e são passados para futuros "objetos".) O polimorfismo (Que permite herdar um método da "classe pai" e se adptar da
melhor forma na classe posterior) encapsulamento (que é a capacidade de esconder detalhes do "objeto" colocando em vista apenas o que deve ser acessado pelo público).
Dessa forma a POO organiza todas as informações pertencentes a um programa na forma de conceitos onde cada conceito tem uma classe e cada classe tem seus atributos,
garantindo a reutilização do código fonte da melhor e mais eficiente maneira possível.
Retorno da correção
 VOLTAR
A+ Alterar modo de visualização
1
2
07/02/23, 09:02 Avaliação Final (Discursiva) - Individual
about:blank 2/2
Parabéns, acadêmico(a)! Sua resposta atingiu os objetivos da questão e você atingiu o esperado, demonstrando a competência da análise e síntese do assunto abordado,
apresentando excelentes argumentos próprios, com base nos materiais disponibilizados. Confira no quadro "Resposta esperada" a sugestão de resposta para esta questão.
Imprimir

Continue navegando