Prévia do material em texto
Prova de Programação Orientada a Objetos - Exercício do Conhecimento Questão 1 de 5 O reaproveitamento do código na programação orientada a objeto é um dos principais benefícios do uso desse paradigma, analise o código a seguir, escrito na linguagem Java: public class Blusa { public void cor ( ); } class Camiseta extends Blusa { } class Camisa extends Blusa { public void cor ( ); } O reaproveitamento ocorre pois: I – a classe Camisa implementa um outro método cor, diferente daquele da classe Blusa. II - a palavra extends na classe Camiseta define a relação de interface entre Camisa e Blusa. III - é possível observar o conceito de classe abstrata nessas classes. IV - a classe Camisa poderá fazer uso de métodos pela herança direta da classe Blusa. V - a classe Blusa, sendo privada, pode ser acessada em qualquer lugar do projeto. Está correto o que se afirma: A - Apenas nas afirmativas I e II B - Apenas nas afirmativas I e IVcheck_circleResposta correta C - Apenas nas afirmativas I, II e IV D - Apenas nas afirmativas III e IV E - Nas afirmativas I, II e V Gabarito: Apenas nas afirmativas I e IV. Justificativa: as afirmativas corretas são I - a classe Camisa implementa um outro método cor, diferente daquele da classe Blusa e IV - a classe Camisa poderá fazer uso de métodos pela herança direta da classe Blusa, as classes Camiseta e Camisa foram criadas a partir da classe Blusa, usando o método de herança. A herança é um princípio da POO que permite a criação de novas classes a partir de outras previamente criadas. Essas novas classes são chamadas de subclasses, ou classes derivadas; e as classes já existentes, que deram origem às subclasses, são chamadas de superclasses, ou classes base. Deste modo é possível criar uma hierarquia dessas classes, tornando, assim, classes mais amplas e classes mais específicas. Uma subclasse herda métodos e atributos de sua superclasse; apesar disso, pode escrevê-los novamente para uma forma mais específica de representar o comportamento do método herdado. Questão 2 de 5 A programação orientada a objetos é parte de uma tríade do paradigma: análise, projeto e programação. Em um projeto de software orientado a objetos, é correto afirmar que: I - o encapsulamento do objeto garante que a classe filha tenha acesso aos comportamentos e atributos da classe pai. II - os objetos são projetados de forma que especifiquem todas as definições para que uma classe seja instanciada, sendo assim a classe é uma instância do objeto. III – os objetos criados a partir de classes diferentes podem ter relação uns com os outros. IV - envolve projetar as classes de objetos e os relacionamentos entre essas classes, as quais definem os objetos no sistema e suas interações. V - as classes pais somente podem ter relação de agregação com outras classes. Está correto o que se afirma: A - Apenas na afirmativa V B - Apenas nas afirmativas I e III C - Apenas nas afirmativas I, II e IV D - Apenas nas afirmativas III e IVcheck_circleResposta correta E - Apenas nas afirmativas IV e V Referência - Questão 2 Gabarito: Apenas nas afirmativas III e IV Justificativa: conforme o capítulo 2 página 49 do livro disciplina para que se possa trabalhar com um ou mais produtos no programa, é necessário instanciar um ou mais objetos a partir da classe. Conforme página 63 temos a seguinte afirmação que embasa a afirmativa V: Somente uma visão holística adequada irá dar subsídios para colocar as classes lado a lado e estabelecer o correto relacionamento entre elas, seja por simples associação, agregação, composição, dependência ou até mesmo o reaproveitamento por herança. E, por fim, gerar um diagrama de classes que seja suficiente para o entendimento nos diversos níveis de implementação, criando e mantendo de forma adequada a documentação de software considerando todos os fundamentos da Orientação a Objetos. Questão 3 de 5 Com relação aos conceitos de programação orientada a objetos, é correto afirmar que: I - Na programação orientação a objetos todas as propriedades e métodos comuns aos objetos encapsulam-se ou agrupam-se em classes. II – variável de classe estática não pode mais ter seu valor alterado após ser inicializada. III - O conceito de reescrita de métodos permite a existência de vários métodos de mesmo nome, porém com assinaturas diferentes, em uma mesma classe. IV – Os construtores são métodos especiais chamados pelo sistema no momento da criação de um objeto. Já os destrutores são métodos especiais executados automaticamente pelo sistema após a execução da última linha do método principal. V - O conceito de polimorfismo consiste em separar os aspectos externos de um objeto, que são acessíveis para outros objetos, dos detalhes internos de implementação do objeto. Está correto o que se afirma: A - Apenas nas afirmativas II e III B - Apenas nas afirmativas II, III e IV C - Apenas nas afirmativas IV e V D - Somente na afirmativa Icheck_circleResposta correta E - Somente na afirmativa V Referência - Questão 3 Gabarito: Somente na afirmativa I Justificativa: Na programação orientação a objetos todas as propriedades e métodos comuns aos objetos encapsulam-se ou agrupam-se em classes está correta, pois conforme cápitulo 2, página 43 do livro da disciplina: uma classe é a definição de um tipo abstrato. E um objeto é a instância de uma classe, isto é, sua existência em memória. Comecemos pela classe, que é a definição do tipo. A classe é, portanto, a abstração de uma entidade existente no mundo real (componente de um domínio), aplicada a determinado contexto. Questão 4 de 5 O código a seguir foi escrito utilizado a linguagem C#. Analise as classes nele escritas. De acordo com o código analisado, considere as seguintes asserções: I - o encapsulamento pode ser visto na linha 42; II – na linha 18 a classe B está herdando as características da classe base A; III - a linha 26 contém polimorfismo (Sobrecarga) IV – na linha 38 temos instanciação de classe em memória stack; Está correto o que se afirma: A - Apenas na afirmativa III B - Apenas nas afirmativas I e II C - Apenas nas afirmativas II e IIIcheck_circleResposta correta D - Nas afirmativas I, II e III E - Somente na afirmativa I Referência - Questão 4 Gabarito: Apenas nas afirmativas II e III Justificativa: Os itens II - na linha 18 a classe B está herdando as características da classe base A, pois podemos verificar o código da herança e III - a linha 26 contém polimorfismo (Sobrecarga) vemos o código de sobrecarga. As demais opções estão incorretas. Questão 5 de 5 A Programação Orientada a Objetos (POO) diz respeito a um padrão de desenvolvimento que é seguido por muitas linguagens, como C# e Java. Esse paradigma é o mais difundido entre todos, com base nos conceitos de POO analise as afirmativas: I - Na definição de uma classe é possível não especificar atributos. II - Durante a execução de um programa, o número de objetos instanciados deve ser igual ao de classes definidas. III- Toda classe é superclasse de pelo menos uma subclasse IV – A utilização de classes com o mesmo nome são comuns Está correto o que se afirma: A - Apenas na afirmativa III B - Apenas nas afirmativas I e II C - Apenas nas afirmativas II e III D - Nas afirmativas I, II e III E - Somente na afirmativa Icheck_circleResposta correta Referência - Questão 5 Gabarito: Somente na afirmativa I. Justificativa: Na definição de uma classe é possível não especificar atributos. As demais afirmações não são verdadeiras.