Baixe o app para aproveitar ainda mais
Prévia do material em texto
03/07/2021 UNIASSELVI - Centro Universitário Leonardo Da Vinci - Portal do Aluno - Portal do Aluno - Grupo UNIASSELVI https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php 1/7 Acadêmico: Diego dos Reis Soares (1901312) Disciplina: Programação Orientada a Objetos (ADS17) Avaliação: Avaliação II - Individual ( Cod.:670861) ( peso.:1,50) Prova: 33404233 Nota da Prova: 8,00 Legenda: Resposta Certa Sua Resposta Errada 1. Classes abstratas são um recurso poderoso da linguagem Java para criação de abstrações. Utilizando classes abstratas pode-se alcançar bons níveis de reutilização de código-fonte, além de fortalecer e favorecer o conceito de polimorfismo, permitindo a reutilização e a extensão de estado e comportamento entre classes. Sobre as características das classes abstratas, analise as sentenças a seguir: I- Classes abstratas, por via de regra, não podem gerar objetos, mas construtores abstratos, construtores especiais, podem ser utilizados por essas classes para permitir que objetos sejam criados. II- Os métodos concretos de uma classe abstrata podem ser compartilhados, sem alterações, por todas as suas classes concretas geradas. III- Em uma hierarquia de classes abstratas, a primeira ocorrência de uma classe concreta deve implementar todos os métodos abstratos presentes na hierarquia. IV- Em uma hierarquia de classes abstratas, a primeira ocorrência de uma classe concreta deve alterar todos os métodos concretos presentes na hierarquia. Assinale a alternativa CORRETA: a) As sentenças II e III estão corretas. b) As sentenças II e IV estão corretas. c) As sentenças III e IV estão corretas. d) As sentenças I e II estão corretas. 03/07/2021 UNIASSELVI - Centro Universitário Leonardo Da Vinci - Portal do Aluno - Portal do Aluno - Grupo UNIASSELVI https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php 2/7 2. O conceito de classes abstrata, através de suas características especiais, fornece ao conceito de herança uma maior confiabilidade uma vez que as classes modeladas com herança precisam ser melhor idealizadas e projetadas. Dessa forma, avalie o código-fonte da classe Atleta: package fontes; public class Atleta{ private int pais; private String modalidade; private boolean medalistaOlimpico; public abstract void competir(String modalidade) { System.out.println("É especialista em " + modalidade); } public void competirPor(int pais){ System.out.println("O atleta compete por " + pais); } } I- A classe em questão apresenta problemas de sintaxe. II- O método competirPor(int pais) não está gerando erro de sintaxe e usa corretamente a palavra-chave void. III- O método competirPor(int pais) gera erros de sintaxe, e necessita da palavra-chave abstract antes da palavra-chave void. IV- O método "competir(String modalidade)" não gera erro de sintaxe. Assinale a alternativa CORRETA: a) As sentenças I e III estão corretas. b) As sentenças I e II estão corretas. c) As sentenças III e IV estão corretas. d) As sentenças II e IV estão corretas. 3. A linguagem de programação Java permite a definição de classes abstratas, que representam ferramentas poderosas na definição de relacionamentos de herança e, consequente, reutilização e extensão de estado e comportamento. Com relação às classes abstratas da linguagem de programação Java, classifique V para as sentenças verdadeiras e F para as falsas: ( ) Uma classe abstrata somente pode ser instanciada a partir de um construtor abstrato. ( ) Uma classe abstrata não pode possuir métodos concretos. ( ) Os métodos concretos de uma classe abstrata podem ser reutilizados, sem alteração em suas subclasses. ( ) Em uma hierarquia de herança, a primeira classe abstrata deve prover implementação para os métodos abstratos. Agora, assinale a alternativa que apresenta a sequência CORRETA: a) V - V - F - V. b) V - F - F - V. c) F - F - V - F. d) V - V - F - F. 03/07/2021 UNIASSELVI - Centro Universitário Leonardo Da Vinci - Portal do Aluno - Portal do Aluno - Grupo UNIASSELVI https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php 3/7 4. O polimorfismo é caracterizado quando duas ou mais classes possuem o mesmo nome de método ou operação, e outra classe, abstrata, possui um método com mesmo nome dos métodos das classes anteriores, podendo receber a invocação de qualquer um dos dois objetos (classes instanciadas), executando a operação correta. Conforme exemplificado, a implementação de polimorfismo pode ocorrer através de uma classe abstrata, cujos métodos são declarados, mas não definidos. Com relação ao código-fonte a seguir e ao polimorfismo da orientação a objetos, assinale a alternativa CORRETA: a) A classe abstrata "Veiculo" referencia o comportamento das classes "Carro" e "Caminhao", e ao ser executada a classe "Teste", será impresso primeiramente a mensagem "Acelerando o carro...." e depois "Acelerando o caminhão....". b) As classes abstratas "Carro" e "Caminhao" referenciam o comportamento da classe "Veiculo", e ao ser executada a classe "Teste", será impresso primeiramente a mensagem "Acelerando o caminhão...." e depois "Acelerando o carro....". c) Não existe polimorfismo implementado entre as classes do código-fonte apresentado. d) Ao ser executada a classe "Teste", ocorrerá um erro designando que a instância da classe "Veiculo" nas linhas 19 e 20 são inválidas, pois recebem a instância de classes de outro tipo ("Carro" e "Caminhao"). 5. A coesão é a característica que faz com que uma classe tenha somente uma responsabilidade dentro do sistema, o que faz com que a sua correção, em caso de erros ou a manutenção em caso de evolução, seja simplificada. No que se refere à coesão de uma classe, assinale a alternativa CORRETA: a) Tanto a coesão quanto o encapsulamento são obtidos na linguagem de programação Java através do modificador de acesso private. b) A coesão, embora seja uma característica importante, não auxilia o encapsulamento de uma classe. c) Se uma classe tiver uma e somente uma responsabilidade, a probabilidade de esta sofrer manutenção diminui. d) Uma classe coesa é, necessariamente, uma classe com alto acoplamento. 03/07/2021 UNIASSELVI - Centro Universitário Leonardo Da Vinci - Portal do Aluno - Portal do Aluno - Grupo UNIASSELVI https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php 4/7 6. O paradigma da orientação a objetos aplicada no desenvolvimento de software possui a vantagem de tornar o código-fonte reutilizável, mais legível, e fácil de realizar manutenção. O polimorfismo permite que outras classes representem o comportamento de classes que elas referenciam. Com relação às classes criadas no código-fonte, analise as sentenças a seguir: (1)public class Veiculo { (2) public void parar(){} (3)} (4) (5)public class Motocicleta extends Veiculo{ (6) public void parar(){ (7) System.out.println("Parando a motocicleta!!"); (8) } (9)} (10) (11)//Veiculo utilitario esporte (SUV: Sport Utility Vehicle) (12)public class Suv extends Veiculo{ (13) public void parar(){ (14) System.out.println("Parando o veículo utilitário!!"); (15) } (16)} (17) (18)public class Principal { (19) public static void main(String[] args){ (20) Veiculo veiculo1 = new Motocicleta(); (21) Veiculo veiculo2 = new Suv(); (22) (23) veiculo1.parar(); (24) veiculo2.parar(); (25) } (26)} I- Apesar do código-fonte não lidar com classes abstratas, existe o polimorfismo implementado entre as classes do exemplo. II- Ao executarmos a classe Principal, ocorrerá um erro designando que a instância da classe Veiculo nas linhas 20 e 21 são inválidas, pois recebem a instância de classes de outro tipo (Motocicleta e Suv). III- A classe Veiculo referencia o comportamento das classes Motocicleta e Suv, e ao executarmos a classe Principal, será impresso primeiramente a mensagem (Parando a motocicleta!!)e depois (Parando o veículo utilitário!!). IV- As classes Motocicleta e Suv referenciam o comportamento da classe Veiculo, e ao executarmos a classe Principal, será impresso primeiramente a mensagem (Parando o veículo utilitário!!) e depois (Parando a motocicleta!!). Assinale a alternativa CORRETA: a) As sentenças I e II estão corretas. b) As sentenças III e IV estão corretas. c) As sentenças I e III estão corretas. d) As sentenças II e IV estão corretas. 03/07/2021 UNIASSELVI - Centro Universitário Leonardo Da Vinci - Portal do Aluno - Portal do Aluno - Grupo UNIASSELVI https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php 5/7 7. Uma das principais vantagens em se desenvolver um software utilizando o paradigma da orientação a objetos, é a reutilização de código-fonte, tornando-o mais legível e fácil de realizar manutenção. Neste sentido, podemos exemplificar a facilidade de manutenção com a necessidade de criar uma coluna em uma tabela, gravando um valor fixo. Neste caso, basta alterar o método que realiza a inserção de registro nesta tabela, e o software está alterado, mesmo que o método seja invocado por mais de uma classe. Analise o código-fonte a seguir e classifique V para as sentenças verdadeiras e F para as falsas: ( ) Devido à herança, a linha 31 está correta. ( ) A classe "Carro" herda o método "getNomeModelo()" da classe "Veiculo". ( ) A classe "Veiculo" herda os métodos com modificador "public" da classe "Carro". ( ) Ocorre uma relação de herança entre as duas classes, sendo que a classe "Carro" herda atributos e métodos da classe "Veiculo". Assinale a alternativa que apresenta a sequência CORRETA: a) F - V - F - F. b) V - F - F - V. c) V - V - V - F. d) V - V - F - V. 03/07/2021 UNIASSELVI - Centro Universitário Leonardo Da Vinci - Portal do Aluno - Portal do Aluno - Grupo UNIASSELVI https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php 6/7 8. A herança, juntamente ao encapsulamento, o polimorfismo e a abstração, representa um dos pilares da programação orientada a objetos e pode, quando bem modelada e utilizada, diminuir o esforço na manutenção do código-fonte. Considerando o relacionamento de herança entre duas ou mais classes, classifique V para as sentenças verdadeiras e F para as falsas: ( ) A herança possibilita o compartilhamento de atributos entre uma superclasse subclasse, limitando esse compartilhamento para os atributos indicados com o modificador "private". ( ) A palavra-chave extends define que uma classe está estendendo outra, que em outras palavras significa o uso de herança na linguagem de programação Java. ( ) A herança possibilita o compartilhamento de métodos entre uma superclasse subclasse, limitando esse compartilhamento para alguns tipos especiais de métodos. ( ) A herança de métodos é possível, porém os métodos construtores podem ser reescritos através do polimorfismo. Assinale a alternativa que apresenta a sequência CORRETA: a) V - V - V - F. b) F - V - F - F. c) V - F - F - V. d) F - F - V - V. 9. Java é uma linguagem de programação interpretada orientada a objetos desenvolvida na década de 90 por uma equipe de programadores. Observe a figura anexa que ilustra uma situação típica em que podemos aplicar o conceito de herança de classes em Java. Considerando os conceitos de programação orientada a objetos, analise as sentenças a seguir: I- A classe FormaGeometrica, indicada pela letra A, é considerada a superclasse das classes contidas na área indicada pela letra B. II- Quadrado é uma classe filha da classe FormaGeometrica. III- O método enfatizado pela letra C, calcularArea(), está sobrescrevendo a implementação da superclasse de Triangulo. IV- A classe FormaGeometrica também é conhecida na linguagem Java como JGF. Agora, assinale a alternativa CORRETA: 03/07/2021 UNIASSELVI - Centro Universitário Leonardo Da Vinci - Portal do Aluno - Portal do Aluno - Grupo UNIASSELVI https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php 7/7 a) As sentenças II e IV estão corretas. b) Somente a sentença III está correta. c) As sentenças I e IV estão corretas. d) As sentenças I, II e III estão corretas. 10.O encapsulamento ajuda a diminuir o acoplamento entre os objetos de um sistema, pois prega que somente o que é absolutamente necessário deve ser exposto aos demais. Com relação ao encapsulamento, assinale a alternativa CORRETA: a) Um bom cidadão é um objeto que tem todos os valores de seus atributos preenchidos no momento da instanciação. b) Para fazer uso do encapsulamento, basta modificarmos a visibilidade de nossos atributos. c) O alto acoplamento é positivo, pois permite que os objetos se comuniquem com mais facilidade. d) Métodos também podem ser ocultados, no sentido de garantir um maior encapsulamento. Prova finalizada com 8 acertos e 2 questões erradas.
Compartilhar