Prévia do material em texto
06/10/2022 16:20 Avaliação II - Individual about:blank 1/7 Prova Impressa GABARITO | Avaliação II - Individual (Cod.:687705) Peso da Avaliação 1,50 Prova 40576357 Qtd. de Questões 10 Acertos/Erros 9/1 Nota 9,00 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, assinale a alternativa CORRETA: A A palavra extends define a herança na linguagem de programação Java. B A herança de métodos é possível, porém os métodos do tipo "get" e "set" devem ser reescritos através do polimorfismo. C Com a utilização do recurso de herança é possível compartilhar atributos entre uma classe pai e uma classe filha, porém esse compartilhamento não é possível no tocante aos métodos. D Com a utilização do recurso de herança é possível compartilhar métodos entre uma classe pai e uma classe filha, porém esse compartilhamento não é possível no tocante aos atributos. Na linguagem de programação Java, existem os modificadores de acesso que fornecem visibilidade ou invisibilidade para classes, métodos ou atributos. Através destes modificadores de acesso, pode-se tornar um atributo acessível para outra classe, por exemplo, ou ainda torná-lo visível apenas dentro da própria classe. Analise o código-fonte, escrito em linguagem de programação Java, a seguir e classifique V para as sentenças verdadeiras e F para as falsas: ( ) A classe "Carro" é visível em todas as demais classes da aplicação. ( ) Os atributos "codigo" e "modelo" são visíveis por todas as classes que delegarem a classe "Carro". ( ) O atributo "valor" é acessível apenas na subclasse do relacionamento de herança, se houver. ( ) O atributo "qtdePortas" é visível por todas as classes que delegarem a classe "Carro". Assinale a alternativa que apresenta a sequência CORRETA: A V - F - V - V. B F - V - F - F. C V F F V VOLTAR A+ Alterar modo de visualização 1 2 06/10/2022 16:20 Avaliação II - Individual about:blank 2/7 C V - F - F - V. D V - V - V - F. A programação orientada a objetos permite o desenvolvimento de códigos-fonte utilizando o encapsulamento, que evita ou diminui o acoplamento, dependência dos códigos-fonte, e aumenta a coesão, que é o princípio da responsabilidade única de um trecho de código-fonte ou um método, por exemplo. Além disso, o polimorfismo é outra vantagem da programação orientada a objetos, o qual possibilita a manutenção futura sem necessitar de muitas alterações. Com relação ao encapsulamento, assinale a alternativa CORRETA: A O polimorfismo apenas ocorre quando o modificador dos métodos da classe forem "protected". B O principal objetivo do polimorfismo é a capacidade de herdar métodos e classes para uma subclasse. C O polimorfismo permite que um único nome de classe represente diferentes códigos-fonte. D O polimorfismo possui a desvantagem de tornar as classes com maior quantidade de código- fonte. O polimorfismo é implementado de muitas formas dentro da linguagem de programação Java, sendo que uma das mais utilizadas é a criação e a implementação de interfaces. Considerando a criação e a utilização de interfaces dentro da linguagem de programação Java, analise o código fonte da figura a seguir e classifique V para as sentenças verdadeiras e F para as falsas: ( ) A classe SHA faz a sobrecarga do método encript() nas linhas 8 a 12. ( ) O método encript() faz parte de uma interface chamada IAlgoritmoCriptografia. ( ) Se a classe SHA fosse abstrata, ela não poderia fornecer implementação para o método gerarChaveCripto(Date data). ( ) Um vetor de IAlgoritmoCriptografia não pode conter um objeto do tipo SHA. Agora, assinale a alternativa que apresenta a sequência CORRETA: A V - F - V - V. 3 4 06/10/2022 16:20 Avaliação II - Individual about:blank 3/7 B V - V - F - V. C F - V - F - F. D V - V - F - F. 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 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"). 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 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....". 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 5 6 06/10/2022 16:20 Avaliação II - Individual about:blank 4/7 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 V - V - F - V. B V - F - F - V. C F - V - F - F. D V - V - V - F. 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; 7 06/10/2022 16:20 Avaliação II - Individual about:blank 5/7 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 não apresenta nenhum problema de sintaxe. II- O método competirPor(int pais) não está gerando nenhum erro de sintaxe e está usando corretamente a palavra-chave void. III- O método competirPor(int pais) gera erros de sintaxe, logo 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 II 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 II e III estão corretas. Java é uma linguagem de programação interpretada orientada a objetos desenvolvida na década de 90 por uma equipe de programadores. Observe a figura anexaque 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. 8 06/10/2022 16:20 Avaliação II - Individual about:blank 6/7 Agora, assinale a alternativa CORRETA: 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. Por intermédio da herança, um dos pilares da programação orientada a objetos, é possível reaproveitarmos características e comportamentos já implementados em outras classes sem a necessidade de realizar a cópia de código-fonte. Com relação a esse conceito, classifique V para as sentenças verdadeiras e F para as falsas: ( ) Em uma superclasse, para acessar métodos da subclasse deve ser usada a instrução super. ( ) A implementação de herança múltipla em Java não é possível. ( ) Para definirmos um relacionamento de herança entre classes utilizamos a palavra reservada "derives". ( ) Uma subclasse herda os métodos da superclasse, entretanto, pode ter seus próprios métodos. Agora, assinale a alternativa que apresenta a sequência CORRETA: A V - V - V - F. B F - V - F - V. 9 06/10/2022 16:20 Avaliação II - Individual about:blank 7/7 C V - F - F - V. D F - F - V - V. 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 - F. B V - V - F - V. C V - F - F - V. D F - F - V - F. 10 Imprimir