Prévia do material em texto
Design orientado a objetos O que e o principio da encapsulacao no Design Orientado a Objetos? a) A capacidade de ocultar detalhes internos de uma classe, permitindo acesso controlado b) A capacidade de criar varias instancias de uma classe c) O processo de dividir um sistema em objetos independentes d) A criacao de objetos com caracteristicas dinamicas Resposta: a) A capacidade de ocultar detalhes internos de uma classe, permitindo acesso controlado Explicacao: A encapsulacao visa esconder os detalhes internos da implementacao de uma classe, permitindo que outras partes do programa interajam com o objeto apenas por meio de metodos publicos definidos, garantindo seguranca e modularidade. Qual a principal funcao do polimorfismo no Design Orientado a Objetos? a) Permitir que uma classe herde caracteristicas de varias classes b) Permitir que diferentes classes implementem metodos com o mesmo nome de formas diferentes c) Controlar o acesso aos dados de um objeto d) Definir uma interface comum para todas as classes de um sistema Resposta: b) Permitir que diferentes classes implementem metodos com o mesmo nome de formas diferentes Explicacao: O polimorfismo permite que o mesmo nome de metodo seja usado em diferentes contextos, sendo implementado de maneira distinta dependendo da classe. O que caracteriza uma classe abstrata em Design Orientado a Objetos? a) Uma classe que nao pode ser instanciada diretamente e pode ter metodos abstratos b) Uma classe que serve apenas como modelo para outras classes c) Uma classe que possui todos os seus metodos implementados d) Uma classe que possui apenas atributos e nenhum metodo Resposta: a) Uma classe que nao pode ser instanciada diretamente e pode ter metodos abstratos Explicacao: Uma classe abstrata nao pode ser instanciada diretamente, mas pode fornecer uma base para outras classes, alem de permitir a definicao de metodos abstratos, que devem ser implementados pelas subclasses. Qual e a diferenca entre composicao e heranca no Design Orientado a Objetos? a) Heranca permite que uma classe herde caracteristicas de outras, enquanto composicao usa objetos de outras classes como membros b) Composicao e usada para definir o comportamento de uma classe, enquanto heranca determina a estrutura c) Heranca e mais flexivel que composicao d) Nao ha diferenca significativa entre composicao e heranca Resposta: a) Heranca permite que uma classe herde caracteristicas de outras, enquanto composicao usa objetos de outras classes como membros Explicacao: Heranca e quando uma classe herda atributos e metodos de uma classe pai, enquanto composicao envolve criar objetos como membros de uma classe, promovendo a reutilizacao de codigo de forma mais flexivel. O que e o principio da responsabilidade unica (SRP) no Design Orientado a Objetos? a) Uma classe deve ter apenas uma razao para mudar b) Uma classe deve ter varios comportamentos diferentes para aumentar sua flexibilidade c) O codigo de uma classe deve ser sempre modular e independente de outras classes d) Todas as classes devem ser pequenas para melhorar a manutencao Resposta: a) Uma classe deve ter apenas uma razao para mudar Explicacao: O principio da responsabilidade unica afirma que cada classe deve ter uma unica responsabilidade, ou seja, deve ser responsavel por uma unica parte do funcionamento do sistema, facilitando a manutencao e evitando o aumento de complexidade. O que e uma interface em Design Orientado a Objetos? a) Uma definicao de metodos que as classes devem implementar, sem fornecer implementacao b) Um tipo de classe que pode ser instanciada c) Um tipo de classe que define comportamento, mas nao dados d) Uma classe que contem apenas atributos Resposta: a) Uma definicao de metodos que as classes devem implementar, sem fornecer implementacao Explicacao: Uma interface define um conjunto de metodos que as classes devem implementar, mas nao fornece implementacoes concretas desses metodos. Qual a principal vantagem do uso de heranca em Design Orientado a Objetos? a) Permite que as classes compartilhem atributos e comportamentos de uma classe base b) Facilita a criacao de multiplas instancias de uma classe c) Aumenta a complexidade do sistema, tornando-o mais flexivel d) Permite que os objetos de uma classe sejam tratados de forma mais segura Resposta: a) Permite que as classes compartilhem atributos e comportamentos de uma classe base Explicacao: A heranca permite que uma classe herde atributos e comportamentos (metodos) de outra classe, promovendo reutilizacao de codigo e simplificando a modelagem. O que caracteriza o principio da inversao de dependencia (DIP)? a) Dependencias em um sistema devem ser feitas em classes concretas b) Dependencias devem ser invertidas, ou seja, dependencias de classes concretas devem ser substituidas por abstracoes c) Cada classe deve ser responsavel por uma tarefa unica d) Cada modulo do sistema deve depender de modulos internos Resposta: b) Dependencias devem ser invertidas, ou seja, dependencias de classes concretas devem ser substituidas por abstracoes Explicacao: O principio da inversao de dependencia estabelece que modulos de alto nivel nao devem depender de modulos de baixo nivel, mas ambos devem depender de abstracoes (interfaces ou classes abstratas). Qual e o objetivo do uso do padrao de projeto Factory Method? a) Criar objetos sem especificar a classe exata do objeto que sera criado b) Gerenciar a comunicacao entre objetos em um sistema c) Permitir que classes modifiquem o comportamento de outras classes sem heranca d) Organizar objetos de forma hierarquica Resposta: a) Criar objetos sem especificar a classe exata do objeto que sera criado Explicacao: O padrao Factory Method permite criar objetos de tipos especificos sem expor a logica de criacao para o codigo cliente, facilitando a substituicao de classes concretas sem modificar o codigo cliente. O que significa o conceito de "acoplamento" no Design Orientado a Objetos? a) A forma como os objetos interagem entre si, com o menor numero possivel de dependencias b) O processo de herdar caracteristicas de outras classes c) A estrutura hierarquica de objetos no sistema d) A criacao de objetos independentes sem interacao entre eles Resposta: a) A forma como os objetos interagem entre si, com o menor numero possivel de dependencias Explicacao: O acoplamento refere-se ao grau de dependencia entre classes ou modulos. Um acoplamento baixo significa que as classes tem poucas dependencias entre si, o que facilita a manutencao e flexibilidade do sistema. O que e o padrao de projeto Singleton? a) Um padrao que garante que uma classe tenha apenas uma instancia, fornecendo um ponto de acesso global a ela b) Um padrao que permite a criacao de multiplas instancias de uma classe de maneira controlada c) Um padrao que cria uma classe abstrata para ser estendida d) Um padrao que cria interfaces para que as classes se comuniquem de forma generica Resposta: a) Um padrao que garante que uma classe tenha apenas uma instancia, fornecendo um ponto de acesso global a ela Explicacao: O Singleton assegura que uma classe tenha apenas uma instancia em todo o sistema e fornece um ponto de acesso global a essa instancia, controlando a criacao de objetos. O que e o principio da substituicao de Liskov (LSP)? a) Subclasses devem ser substituiveis por suas classes base sem alterar o comportamento do programa b) Uma classe base deve sempre ser substituida por uma classe concreta c) O comportamento de uma classe deve ser alterado sem que se altere sua assinatura d) Subclasses podem adicionar novos metodos, mas nao podem alterar os existentes Resposta: a) Subclasses devem ser substituiveis por suas classes base sem alterar o comportamento do programa Explicacao: O principio da substituicao de Liskov diz que objetos de uma classe derivada devem ser capazes de substituir objetos da classe base sem modificar o comportamento esperado do sistema. O quecaracteriza o padrao de projeto Observer? a) Um objeto notifica automaticamente outros objetos quando seu estado muda b) Um objeto cria novos objetos conforme necessario durante a execucao c) Um objeto permite que as subclasses modifiquem o comportamento sem alterar o codigo d) Um objeto define um contrato que outros objetos devem seguir Resposta: a) Um objeto notifica automaticamente outros objetos quando seu estado muda Explicacao: O padrao Observer define uma relacao de dependencia entre objetos, onde quando um objeto muda seu estado, todos os objetos que dependem dele sao notificados e atualizados automaticamente. O que e o principio da segregacao de interfaces (ISP)? a) As interfaces devem ser pequenas e especificas, evitando a implementacao de metodos que nao sao necessarios para as classes que as utilizam b) As interfaces devem ser grandes e incluir todos os metodos possiveis c) As interfaces devem ser genericas e aplicaveis a todas as classes d) As interfaces devem ser divididas entre comportamentos comuns e comportamentos exclusivos Resposta: a) As interfaces devem ser pequenas e especificas, evitando a implementacao de metodos que nao sao necessarios para as classes que as utilizam Explicacao: O principio da segregacao de interfaces sugere que as interfaces devem ser focadas e especializadas, para que as classes que as implementem nao sejam forcadas a implementar metodos que nao precisam.