Baixe o app para aproveitar ainda mais
Prévia do material em texto
Disciplina: Programação Orientada a Objetos Avaliação: Avaliação II - Individual Semipresencial ( peso.:1,50) Prova: 13603914 Out-2019 Nota da Prova: 10,00 Legenda: Resposta Certa Sua Resposta Errada 1. Uma das principais características da orientação a objetos é a possibilidade de ocultar partes do código de um objeto, chamada de encapsulamento. Com o encapsulamento, cada parte do código-fonte é menor e independente de outras partes, isto é, cada método é específico, realizando uma única operação, tornando o código-fonte mais reutilizável e legível. Com relação ao encapsulamento, assinale a alternativa CORRETA: a) O encapsulamento evita que alguma entidade externa altere os valores dos atributos de um objeto indevidamente. b) O encapsulamento permite a instância de uma classe em memória. c) Ao ocultar detalhes do código-fonte, aumenta-se o acoplamento. d) A interface exposta de uma classe, se alterada para privada, encapsulada, não requer cuidado para os métodos chamadores. 2. 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) 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"). c) Não existe polimorfismo implementado entre as classes do código-fonte apresentado. d) 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...." . 3. 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) Se uma classe tiver uma e somente uma responsabilidade, a probabilidade de esta sofrer manutenção diminui. c) Uma classe coesa é, necessariamente, uma classe com alto acoplamento. d) A coesão, embora seja uma característica importante, não auxilia o encapsulamento de uma classe. 4. 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 subclasse das classes contidas na área indicada pela letra B. II- Quadrado é uma classe filha da classe FormaGeometrica. III- A classe Triangulo implementa a interface FormaGeometrica. Agora, assinale a alternativa CORRETA: a) As sentenças II e III estão corretas. b) As sentenças I e II estão corretas. c) Somente a sentença I está correta. d) Somente a sentença II está correta. 5. O Polimorfismo de inclusão permite que se defina um novo comportamento para um objeto sem que se faça alterações nos que já estão funcionando, minimizando consideravelmente os custos e reduzindo o tempo para novas implementações. Considerando que a figura a seguir traz duas classes relacionadas a uma interface, classifique V para as sentenças verdadeiras e F para as falsas: ( ) O método encript() da interface é implicitamente abstrato. ( ) Na linguagem de programação Java, demonstraríamos que SHA implementa IAlgoritmoCriptografia através da palavra reservada extends. ( ) Um método existente em outra classe cuja assinatura seja ?public void criptografar(IAlgoritmoCriptografia iac)? pode receber como parâmetro tanto um objeto da classe SHA quanto um objeto da classe DES. ( ) Podemos dizer que tanto SHA quanto DES implementam IAlgoritmoCriptografia. Agora, assinale a alternativa que apresenta a sequência CORRETA: a) V - V - F - V. b) V - F - V - V. c) V - V - F - F. d) F - V - F - V. 6. Na linguagem de programação Java, uma boa prática de desenvolvimento de software é programar orientado a objetos, embora a linguagem permita a programação procedural. No paradigma da orientação a objetos, encapsulamento pode ser descrito como ocultar atributos, métodos ou classes. Isto é realizado através de alguns modificadores de visibilidade, os quais são implementados. Com relação a estes modificadores de visibilidade, assinale a alternativa CORRETA: a) O modificador private fornece acesso a todas as classes da aplicação. b) O modificador default fornece visibilidade dentro da própria classe. c) O motificador protected fornece visibilidade para todas as classes dentro do mesmo pacote. d) O modificador public para uma classe fornece visibilidade desta classe em todas as demais classes da aplicação. 7. Em combinação com a definição de pacotes e classes, os modificadores de visibilidade constituem-se de uma ferramenta poderosa na definição da segurança e encapsulamento da aplicação. Com relação à utilização de modificadores de visibilidade na linguagem de programação Java, analise as sentenças a seguir: I- Um método com modificador default contido em uma classe pública não pode ser acessado em uma classe disponível em outro pacote. II- Um método com modificador public contido em uma classe pública somente pode ser acessado por uma classe disponível em outro pacote através do comando import. III- Uma classe com modificador default pode ser acessada por uma classe de outro pacote com o comando import. IV- Um método private colocado em uma classe com o modificador default não pode ser acessado por outra classe dento do mesmo pacote. Agora, assinale a alternativa CORRETA: a) Somente a sentença II está correta. b) As sentenças II e III estão corretas. c) As sentenças I, II e IV estão corretas. d) Somente a sentença IV está correta. 8. 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) V - F - F - V. c) V - V - V - F. d) F - V - F - F. 9. Por intermédio da herança e do encapsulamento, é possível implementarmos o polimorfismo, mecanismo que permite que duas ou mais classes derivadas de uma mesma superclasse possam criar e/ou invocar métodos com a mesma assinatura, mas com comportamentos diferentes. Com relação ao conceito de polimorfismo e sua implementação na linguagem Java, analise as afirmativas a seguir: I- Polimorfismo de inclusão, polimorfismo paramétrico, sobreposição e sobrecarga são exemplos de tipos de polimorfismo. II- O Java não permite a implementação do polimorfismo paramétrico. III- A técnica de sobrecarga pode ser utilizada para distinguir, em uma determinada classe, dois métodos com o mesmo nome, o mesmo retorno e o mesmo conjunto de argumentos, mas com uma lógica diferente. IV- Na sobrecarga de métodos, é necessário utilizar a anotação @Override. Agora, assinale a alternativa CORRETA: a) As afirmativas II, III e IV estão corretas. b) Somente a afirmativa I está correta. c) As afirmativas II e IV estão corretas. d) As afirmativas I e IV estão corretas. 10. Quanto maior o acoplamento entre duas classes, maior o grau de relacionamento entre estas, o que é contrário aos princípios do encapsulamento. Assinale a alternativa CORRETA que explique um malefício causado pelo alto acoplamento: a) O alto acoplamento impede que os objetos se comuniquem livremente através de mensagens, deixando o sistema pouco flexível. b) Quanto maior o acoplamento, maior a dependência entre os objetos e, consequentemente, mais difícil a manutenção do código fonte. c) Em uma situação na qual duas classes são fortemente acopladas, a comunicação entre estas torna-se mais difícil. d) Em um sistema em que ocorre alto acoplamento, a performance tende a ser baixa.
Compartilhar