Prévia do material em texto
<p>1- A abstração é um conceito fundamental na Orientação a Objetos (OO). Ela permite simplificar a complexidade do mundo real por meio de modelos que representam as características essenciais de um objeto, enquanto ignoram detalhes irrelevantes. Fonte: adaptado de: CARVALHO, Tiago Leite. Orientação a Objetos: Aprenda seus conceitos e suas aplicabilidades de forma efetiva. 1. ed. São Paulo: Casa do Código, 2016.</p><p>Com base nas informações apresentadas, avalie as asserções a seguir e a relação proposta entre elas:</p><p>I. Colaborador é a abstração das pessoas que trabalham na empresa.</p><p>PORQUE</p><p>II. Dentro de uma empresa, temos marketing, desenvolvedor, gerente e vendedor, todos classificados como colaboradores.</p><p>A respeito dessas asserções, assinale a opção correta:</p><p>A) A asserção I é uma proposição verdadeira e a II é uma proposição falsa.</p><p>B) As asserções I e II são verdadeiras, mas a II não é uma justificativa correta da I.</p><p>C) A asserção I é uma proposição falsa e a II é uma proposição verdadeira.</p><p>D) As asserções I e II são verdadeiras, e a II é uma justificativa correta da I.</p><p>E) As asserções I e II são falsas.</p><p>2- A Programação Orientada a Objetos (POO) é uma abordagem de desenvolvimento de software que modela objetos do mundo real. Ela utiliza conceitos como abstração, que simplifica a complexidade por meio de modelos essenciais; encapsulamento, que oculta detalhes internos; e herança, que permite criar novas classes com base em classes existentes. Além disso, a associação une objetos com interesses comuns. Fonte: adaptado de: CARVALHO, Tiago Leite. Orientação a Objetos: Aprenda seus conceitos e suas aplicabilidades de forma efetiva. 1. ed. São Paulo: Casa do Código, 2016.</p><p>Na biblioteca, diversas classes são fundamentais para o adequado gerenciamento de recursos e informações. Entre elas, destacam-se "Livro", "Autor", "Pessoa" e "Funcionário". Um exemplo notável é o autor "Guimarães Rosa", cuja obra "Grande Sertão: Veredas" está disponível para empréstimo. A classe "Livro" possui atributos como "nome", "título", "cargo" e "data de empréstimo", além dos métodos "emprestarLivro()" e "listarAutor()", permitindo uma gestão eficiente das operações de empréstimo e fornecendo informações sobre os autores das obras. Com base no exposto, analise as afirmativas a seguir:</p><p>I. Pessoa herda característica de Livros.</p><p>II. A classe Autor é uma associação da classe Livro.</p><p>III. A classe Livros encapsula os atributos e os métodos.</p><p>IV. Funcionário e Autor herdam características de Pessoa.</p><p>É correto o que se afirma em:</p><p>A) I e IV, apenas.</p><p>B) III e IV, apenas.</p><p>C) II, III e IV, apenas.</p><p>D) II e III, apenas.</p><p>E) I, II e III, apenas.</p><p>3- Na programação orientada a objetos, a herança deve ser utilizada no contexto apropriado. Para evitar que certas classes sejam herdadas e prevenir erros de encapsulamento e acoplamento, é possível torná-las impossíveis de serem herdadas utilizando a palavra reservada "final". Além disso, em situações em que a herança é permitida, mas alguns métodos herdados não devem ser sobrescritos, é possível aplicar a mesma palavra "final" nesses métodos específicos para evitar a sobrescrita e comportamentos polimórficos indesejados. Fonte: CARVALHO, Tiago Leite. Orientação a Objetos: Aprenda Seus Conceitos e Suas Aplicabilidades de Forma Efetiva. 1. ed. São Paulo: Casa do Código, 2016.</p><p>Com base no texto fornecido, analise as afirmativas a seguir sobre o uso de "final" para evitar a herança ou a sobrescrita de métodos na programação orientada a objetos:</p><p>I. A herança deve ser evitada para garantir encapsulamento e acoplamento.</p><p>II. A palavra reservada "final" pode ser utilizada em classes para evitar que sejam herdadas.</p><p>III. A utilização de métodos específicos podem ser marcados como "final" para evitar a sobrescrita.</p><p>IV. A herança deve ser evitada em projeto que priorize reusabilidade na programação orientada a objetos.</p><p>É correto o que se afirma em:</p><p>A) I, II e III, apenas.</p><p>B) I, II, III e IV.</p><p>C) I, apenas.</p><p>D) III e IV, apenas.</p><p>E) II e IV, apenas.</p><p>4- A programação estruturada, que se baseia em sequência, decisão e iteração, foi o paradigma dominante antes da orientação a objetos. Embora seja capaz de lidar com problemas simples, pode se tornar complexa em situações mais elaboradas, como sistemas de controle de bibliotecas, devido à sua limitação na representação de relações complexas entre os dados. Por outro lado, a orientação a objetos organiza a complexidade ao modelar entidades do mundo real como objetos com comportamentos e propriedades definidas, facilitando a manutenção e compreensão do código. Fonte: Adaptado de: CARVALHO, Tiago Leite. Orientação a Objetos: Aprenda seus conceitos e suas aplicabilidades de forma efetiva. 1. ed. São Paulo: Casa do Código, 2016.</p><p>Identifique uma das principais limitações da programação estruturada que é superada com a implementação da programação orientada a objetos:</p><p>A) Propensão a erros devido à redundância de código.</p><p>B) Dificuldade em lidar com estruturas básicas de programação.</p><p>C) Complexidade na manutenção de um código organizado.</p><p>D) Limitações na representação de relações complexas entre os dados.</p><p>E) Falta de abstrações de dados.</p><p>5- Os conceitos estruturais, relacionais e organizacionais desempenham papéis fundamentais na programação orientada a objetos (POO). A estrutura de uma aplicação é moldada pela forma como as classes e objetos são definidos, enquanto as relações entre essas classes e objetos são determinadas pelos conceitos relacionais. Por fim, os conceitos organizacionais, como pacotes e visibilidades, organizam o código e determinam como os elementos podem ser acessados e interagem entre si. Esses conceitos são essenciais para criar sistemas de software robustos, escaláveis e de fácil manutenção. Fonte: adaptado de: CARVALHO, Tiago Leite. Orientação a Objetos: Aprenda Seus Conceitos e Suas Aplicabilidades de Forma Efetiva. 1. ed. São Paulo: Casa do Código, 2016.</p><p>Com base nos conceitos apresentados nos temas de conceitos estruturais, conceitos relacionais e conceitos organizacionais, analise as afirmativas a seguir:</p><p>I. Pacotes e visibilidades são exemplos de conceitos organizacionais na programação orientada a objetos.</p><p>II. Herança, encapsulamento e polimorfismo são conceitos fundamentais na programação orientada a objetos.</p><p>III. Os conceitos de associação, interfaces e visibilidade são exemplos de conceitos relacionais na programação orientada a objetos.</p><p>É correto o que se afirma em:</p><p>A) III, apenas.</p><p>B) I e II, apenas.</p><p>C) I, II e III.</p><p>D) II e III, apenas.</p><p>E) I, apenas.</p><p>6- O encapsulamento é uma peça fundamental na programação orientada a objetos, sendo vital para assegurar a qualidade e segurança das aplicações. Ele proporciona uma camada de proteção ao ocultar os detalhes internos de uma classe e fornecer uma interface controlada para interações externas. Para manter esse encapsulamento, é crucial evitar o uso excessivo de métodos get/set, optando por estratégias mais robustas como a sobrecarga do construtor e a implementação de métodos de negócio. Além disso, a imutabilidade de classes é essencial, especialmente em ambientes concorrentes, garantindo que o estado de um objeto não seja alterado após sua criação. Essas práticas não apenas promovem um melhor encapsulamento, mas também contribuem significativamente para a segurança e estabilidade das aplicações orientadas a objetos. Fonte: CARVALHO, Tiago Leite. Orientação a Objetos: Aprenda Seus Conceitos e Suas Aplicabilidades de Forma Efetiva. 1. ed. São Paulo: Casa do Código, 2016.</p><p>Com base nas informações apresentadas, avalie as asserções a seguir e a relação proposta entre elas:</p><p>I. Todos os atributos devem ser definidos como privados para garantir o encapsulamento e ocultação da informação.</p><p>PORQUE</p><p>II. Os métodos públicos devem definir claramente a API da classe, enquanto os métodos privados devem ser utilizados para organizar a lógica interna da classe.</p><p>A respeito dessas asserções, assinale a opção correta:</p><p>A) As asserções I e II são verdadeiras, mas a II não é uma justificativa correta da</p><p>I.</p><p>B) As asserções I e II são verdadeiras, e a II é uma justificativa correta da I.</p><p>C) A asserção I é uma proposição verdadeira e a II é uma proposição falsa.</p><p>D) As asserções I e II são falsas.</p><p>E) A asserção I é uma proposição falsa e a II é uma proposição verdadeira.</p><p>7- Na programação orientada a objetos, os conceitos de associação incluem diferentes tipos de relacionamentos entre objetos. Entre eles, temos:</p><p>Agregação: Uma classe "todo" é composta por outras classes "partes", mas as partes podem existir independentemente da classe "todo". É uma relação de todo-parte mais fraca que a composição.</p><p>Composição: Neste tipo de relacionamento, uma classe "todo" é composta por outras classes "partes", mas as partes não podem existir independentemente da classe "todo". É uma relação mais forte, indicando que as partes são essenciais para a existência da classe "todo". Fonte: CARVALHO, Tiago Leite. Orientação a Objetos: Aprenda Seus Conceitos e Suas Aplicabilidades de Forma Efetiva. 1. ed. São Paulo: Casa do Código, 2016.</p><p>Com base nas informações apresentadas, avalie as asserções a seguir e a relação proposta entre elas:</p><p>I. Em duas classes "Carro" e "Motor", podemos dizer que elas são associações de agregação e composição.</p><p>PORQUE</p><p>II. A classe "Motor" pode existir independentemente da classe "Carro", tendo um conceito de agregação, e a classe "Carro" não pode existir sem a classe "Motor", caracterizando a composição.</p><p>A respeito dessas asserções, assinale a opção correta:</p><p>A) As asserções I e II são verdadeiras, e a II é uma justificativa correta da I.</p><p>B) As asserções I e II são falsas.</p><p>C) As asserções I e II são verdadeiras, mas a II não é uma justificativa correta da I.</p><p>D) A asserção I é uma proposição verdadeira e a II é uma proposição falsa.</p><p>E) A asserção I é uma proposição falsa e a II é uma proposição verdadeira.</p><p>8- Considere um sistema de gerenciamento de produtos em uma loja. Cada produto é representado por uma classe Produto, que possui os atributos nome, preco, quantidade_estoque e categoria. Além disso, a classe Produto possui os métodos adicionar_estoque() e vender(), que atualizam a quantidade em estoque quando novos produtos são adicionados ou vendidos. Fonte: CARVALHO, Tiago Leite. Orientação a Objetos: Aprenda Seus Conceitos e Suas Aplicabilidades de Forma Efetiva. 1. ed. São Paulo: Casa do Código, 2016.</p><p>Com base nos conceitos de orientação a objetos fornecidos, analise as afirmativas a seguir sobre a classe "Produto":</p><p>I. A classe “Produto” é um exemplo de modelo ou template para criar objetos.</p><p>II. Um objeto da classe Produto pode ter diferentes valores para o atributo “preco”.</p><p>III. O atributo “categoria” da classe “Produto” é uma característica que descreve o estado do objeto.</p><p>IV. O método “adicionar_estoque()” da classe Produto é um exemplo de mensagem sendo enviada entre objetos.</p><p>É correto o que se afirma em:</p><p>A) II e III, apenas.</p><p>B) III e IV, apenas.</p><p>C) I, II e III, apenas.</p><p>D) II, III e IV, apenas.</p><p>E) I e IV, apenas.</p><p>9- Considere um sistema de gerenciamento de biblioteca em uma escola. Cada livro na biblioteca é representado por uma classe Livro, que possui os atributos titulo, autor, anoPublicacao e disponível. Além disso, a classe Livro possui o método emprestar(), que marca o livro como indisponível quando emprestado, e o método devolver(), que marca o livro como disponível quando devolvido. Fonte: CARVALHO, Tiago Leite. Orientação a Objetos: Aprenda Seus Conceitos e Suas Aplicabilidades de Forma Efetiva. 1. ed. São Paulo: Casa do Código, 2016.</p><p>Com base nos conceitos de orientação a objetos fornecidos, analise as afirmativas a seguir:</p><p>I. A classe Livro é um exemplo de modelo ou template para criar objetos.</p><p>II. Um objeto da classe Livro pode ter diferentes valores para o atributo anoPublicacao.</p><p>III. O atributo disponível da classe Livro é uma característica que descreve o estado do objeto.</p><p>IV. O método emprestar() da classe Livro é um exemplo de mensagem sendo enviada entre objetos.</p><p>É correto o que se afirma em:</p><p>A) II e IV, apenas.</p><p>B) I, apenas.</p><p>C) I, II e III, apenas.</p><p>D) III e IV, apenas.</p><p>E) I, II, III e IV.</p><p>10- A programação orientada a objetos foi impulsionada por dois marcos históricos: a linguagem SIMULA, que introduziu conceitos fundamentais como classes e objetos, e o Smalltalk, que não só consolidou esses conceitos, mas também inovou com uma interface gráfica de usuário e um ambiente de desenvolvimento integrado. Ambos desempenharam papéis cruciais na evolução da programação, oferecendo as bases teóricas e práticas que moldaram o paradigma da programação orientada a objetos como o conhecemos hoje. Fonte: Adaptado de: BOOCH, G. Object-Oriented Analysis and Design with Applications. Addison-Wesley, 1991.</p><p>No desenvolvimento da programação orientada a objetos, dois marcos históricos foram fundamentais: o surgimento da linguagem SIMULA e o desenvolvimento do Smalltalk. Sobre esses marcos, analise as afirmativas a seguir:</p><p>I. O Smalltalk, desenvolvido por Alan Kay no Xerox PARC, trouxe inovações importantes, incluindo uma GUI e um IDE, que revolucionaram o desenvolvimento de software.</p><p>II. A linguagem SIMULA, derivada da simulação de eventos discretos, introduziu conceitos-chave da programação orientada a objetos, como classes, objetos, herança e encapsulamento.</p><p>III. O SIMULA e o Smalltalk foram baseados em linguagens de programação de alto nível, como Fortran e Algol 60, respectivamente, adaptando-as para atender às necessidades específicas da programação orientada a objetos.</p><p>É correto o que se afirma em:</p><p>A) III, apenas.</p><p>B) I, II e III.</p><p>C) I e II, apenas.</p><p>D) I, apenas.</p><p>E) II e III, apenas.</p>