Prévia do material em texto
Prova Impressa GABARITO | Avaliação I - Individual (Cod.:1523256) Peso da Avaliação 2,00 Prova 104325521 Qtd. de Questões 10 Acertos/Erros 10/0 Nota 10,00 No contexto da programação, os vetores eram comumente utilizados para armazenar objetos, porém, apresentam limitações, como tamanho fixo e dificuldade de pesquisa. Para contornar essas limitações, recomenda-se o uso de coleções, como listas, mapas e conjuntos, que oferecem flexibilidade e facilitam a manipulação de dados. As listas, representadas pela classe ArrayList em Java, não possuem tamanho fixo e simplificam a inclusão de itens. Os mapas, como HashMap e HashTable em Java, utilizam o princípio de chave/valor, enquanto os conjuntos, como HashSet. A escolha entre essas estruturas depende do contexto e das necessidades do projeto. 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. Com base no texto fornecido, assinale a estrutura de dados preferível para evitar a inclusão de elementos repetidos: A Pilhas. B Vetores. C Listas. D Conjuntos. E Mapas. No contexto de programação orientada a objetos, onde uma classe é um modelo para criar objetos que define atributos e comportamentos comuns a esses objetos, um atributo são características de uma classe que descrevem seu estado, um método são ações que um objeto pode executar, um objeto é uma instância de uma classe, e uma mensagem é a forma como objetos interagem entre si. 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. VOLTAR A+ Alterar modo de visualização 1 2 30/09/2025, 19:31 Avaliação I - Individual about:blank 1/8 Considere o contexto de uma loja de eletrodomésticos e analise as afirmativas a seguir: I. Liquidificador pode ser definido como uma classe e produto como um objeto. II. O Produto pode ser definido como uma classe e o liquidificador como um objeto. III. Data_venda pode ser definido como um atributo e calcular_preço como um método. IV. Nome_produto pode ser definido como um método e calcular_desconto como um atributo. É correto o que se afirma em: A I, II e III, apenas. B II e III, apenas. C II, III e IV, apenas. D I e IV, apenas. E III e IV, apenas. 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. Suponha que na estrutura de uma empresa foram definidas três classes: Gerente, Funcionário e Vendedor. Dentro dessa hierarquia, os Gerentes têm a responsabilidade de coordenar os Vendedores e ambos são considerados Funcionários da empresa. Com base no exposto, analise as opções a seguir: I. Gerente é abstração de Vendedor. II. Gerente e Vendedor são associações. III. Gerente e Vendedor herdam de Funcionário. IV. Gerente e Vendedor especializam Funcionário. É correto o que se afirma em: A I e IV, apenas. B II e III, apenas. 3 30/09/2025, 19:31 Avaliação I - Individual about:blank 2/8 C III e IV, apenas. D II, III e IV, apenas. E I, II e III, apenas. A programação orientada a objetos, muitos iniciantes acreditam que a herança é a principal forma de reutilizar código, mas isso nem sempre é verdadeiro. A herança é mais apropriada para criar subtipos, não para reúso direto de código. Em vez disso, a associação pode ser mais adequada em situações onde não há uma relação de "é um", mas sim de "usa um" ou "precisa de um". Por exemplo, ao implementar um carrinho de compras, é mais apropriado associá-lo a uma lista de produtos do que herdar diretamente de uma lista. Isso evita problemas como quebras de semântica, quebras de encapsulamento e forte acoplamento. Assim, a associação pode tornar o código mais orientado a objetos, flexível e menos acoplado. 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. Identifique a abordagem recomendada, conforme descrito no texto fornecido, para situações onde o reúso de código é necessário, mas não há uma relação de "é um": I. A herança é a principal maneira de alcançar o reúso de código na programação orientada a objetos. II. A associação é recomendada sempre que houver uma relação de "é um" entre as classes envolvidas. III. A associação é uma alternativa viável quando o reúso é necessário, mas não há uma relação de "é um", e sim de "usa um" ou "precisa de um". IV. Um dos problemas da herança é que uma classe que herda outra tem acesso ao estado da superclasse, o que compromete a coesão e a modularidade do código. É correto o que se afirma em: A II e IV, apenas. B I, apenas. C I, II e III, apenas. D III e IV, apenas. 4 30/09/2025, 19:31 Avaliação I - Individual about:blank 3/8 E I, II, III e IV. 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. Com base nas informações apresentadas, avalie as asserções a seguir e a relação proposta entre elas: I. Colaborador é a abstração das pessoas que trabalham na empresa. PORQUE II. Dentro de uma empresa, temos marketing, desenvolvedor, gerente e vendedor, todos classificados como colaboradores. A respeito dessas asserções, assinale a opção correta: A A asserção I é uma proposição falsa e a II é uma proposição verdadeira. B As asserções I e II são verdadeiras, mas a II não é uma justificativa correta da I. C As asserções I e II são falsas. D A asserção I é uma proposição verdadeira e a II é uma proposição falsa. E As asserções I e II são verdadeiras, e a II é uma justificativa correta da I. 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, 5 6 30/09/2025, 19:31 Avaliação I - Individual about:blank 4/8 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. Com base nos conceitos apresentados nos temas de conceitos estruturais, conceitos relacionais e conceitos organizacionais, analise as afirmativas a seguir: I. Pacotes e visibilidades são exemplos de conceitos organizacionais na programação orientada a objetos. II. Herança, encapsulamento e polimorfismo são conceitos fundamentais na programação orientada a objetos. III. Os conceitos de associação, interfaces e visibilidade são exemplos de conceitos relacionais na programação orientada a objetos. É correto o que se afirma em: A I, apenas. B I e II, apenas. C III, apenas. D II e III, apenas. E I, II e III. No desenvolvimento de software, coesão e acoplamento são dois princípios fundamentais de design que influenciam a qualidadee a manutenibilidade do software. A coesão refere-se ao grau em que os elementos dentro de um módulo estão relacionados e trabalham juntos para realizar uma única tarefa ou responsabilidade. Por outro lado, o acoplamento mede a dependência entre os módulos ou componentes de um sistema. Um acoplamento baixo é desejável, pois indica que os módulos são independentes e podem ser modificados com pouco impacto nos outros componentes do sistema. Fonte: Adaptado de: LEITE, T.; CARVALHO, T. Orientação a Objetos: Aprenda seus conceitos e suas aplicabilidades de forma efetiva. 1. ed. São Paulo: Casa do Código, 2016. Considerando o texto-base sobre coesão e acoplamento, analise as afirmativas a seguir: I. A coesão e o acoplamento são princípios fundamentais de design que influenciam a qualidade e a manutenibilidade do software. II. A coesão se refere ao grau em que os elementos dentro de um módulo estão relacionados e trabalham juntos para realizar uma única tarefa ou responsabilidade. III. Um acoplamento baixo é desejável, pois indica que os módulos são independentes e podem ser modificados com pouco impacto nos outros componentes do sistema. 7 30/09/2025, 19:31 Avaliação I - Individual about:blank 5/8 IV. Um alto grau de coesão é desejável em sistemas de software, pois facilita a manutenção e evolução do sistema, mantendo as responsabilidades dos módulos bem definidas e agrupadas. É correto o que se afirma em: A I, II e III, apenas. B I, II, III e IV. C I, apenas. D III e IV, apenas. E II e IV, apenas. Nas boas práticas de uso da orientação a objetos descritas por Carvalho (2016), enfatiza-se a importância de cuidar dos métodos em uma classe, destacando a redução do tamanho, a eliminação da repetição de código e a gestão adequada dos parâmetros. De acordo com as orientações de Carvalho (2016), métodos menores e mais concisos são preferíveis, facilitando a compreensão e a manutenção do código. Evitar a passagem de muitos parâmetros de forma isolada também é recomendado, pois pode aumentar o acoplamento e dificultar futuras alterações. A organização adequada dos métodos é crucial para desenvolver sistemas mais claros e sustentáveis. 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. Com base nas boas práticas de orientação a objetos descritas por Carvalho (2016), analise as afirmativas a seguir: I. Reduzir o tamanho dos métodos pode contribuir para uma melhor compreensão do código e facilitar sua manutenção ao longo do tempo. II. Evitar a repetição de código nos métodos é uma prática recomendada, pois reduz a redundância e promove uma melhor organização do código. III. Passar uma grande quantidade de parâmetros de forma isolada simultaneamente para os métodos é uma abordagem apropriada no contexto orientado a objetos. É correto o que se afirma em: A II e III, apenas. B I, apenas. 8 30/09/2025, 19:31 Avaliação I - Individual about:blank 6/8 C III, apenas. D I, II e III. E I e II, apenas. Na programação orientada a objetos, os princípios de coesão e acoplamento são fundamentais. A coesão refere-se à interdependência dos elementos de um módulo, indicando o quão bem suas responsabilidades estão definidas e agrupadas de maneira lógica. Por outro lado, o acoplamento descreve a dependência entre os módulos de um sistema, onde um baixo acoplamento implica em uma interdependência mínima entre os elementos. 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. Identifique como a coesão e o acoplamento, como princípios da programação orientada a objetos, contribuem para a qualidade do software: A A coesão refere-se à interdependência entre os módulos de um sistema, enquanto o acoplamento descreve o grau em que os elementos de um módulo estão inter-relacionados. Uma alta coesão e um médio acoplamento são desejáveis para promover a modularidade, reutilização e manutenção do código. B A coesão refere-se à interação entre os atributos e métodos de uma classe, enquanto o acoplamento descreve a dependência entre os módulos de um sistema. Uma alta coesão e um alto acoplamento são desejáveis para promover a flexibilidade do código. C A coesão refere-se à interação entre os objetos de um sistema, enquanto o acoplamento descreve a dependência entre os atributos e métodos de uma classe. Uma baixa coesão e um alto acoplamento são desejáveis para promover a flexibilidade do código. D A coesão refere-se à interdependência entre os módulos de um sistema, enquanto o acoplamento descreve o grau em que os elementos de um módulo estão inter-relacionados. Uma alta coesão e um baixo acoplamento são desejáveis para promover a modularidade, reutilização e manutenção do código. E A coesão refere-se à dependência entre os módulos de um sistema, enquanto o acoplamento descreve o grau em que os elementos de um módulo estão inter-relacionados. Uma alta coesão e um alto acoplamento são desejáveis para promover a modularidade do código. 9 30/09/2025, 19:31 Avaliação I - Individual about:blank 7/8 Na programação orientada a objetos, a herança é um conceito fundamental. Ela permite que uma classe, denominada subclasse, herde atributos e métodos de outra classe, chamada superclasse. Isso promove a reutilização de código e a criação de hierarquias entre as classes. A herança pode ser simples, quando uma subclasse herda de uma única superclasse, ou múltipla, quando uma subclasse herda de várias superclasses. A herança possibilita o uso do polimorfismo, que é a capacidade de objetos de classes diferentes responderem de forma distinta a uma mesma mensagem. 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. Considere o exemplo de uma hierarquia de classes relacionadas a veículos. Temos quatro classes: "Veiculo", “Carro”, "CarroEletrico", "CarroCombustao" e “CarroHibrido”. Com base nos conceitos apresentados e considerando o exemplo da hierarquia de classes de veículos, analise as afirmativas a seguir: I. A herança permite que uma subclasse como "Carro” herde atributos e métodos da superclasse "Veiculo", promovendo a reutilização de código. II. A herança pode ser simples, como quando "Carro" herda apenas de "Veiculo", ou múltipla, como “CarroHibrido” herda característica de “CarroEletrico” e “CarroCombustao”. III. Na herança múltipla, como o caso de "CarroHibrido", a classe pode herdar características de várias superclasses, proporcionando uma maior flexibilidade no design do sistema, embora também possa resultar em complexidades adicionais. IV. O uso do polimorfismo, possibilitado pela herança, permite que objetos de classes diferentes respondam de forma distinta a uma mesma mensagem. Por exemplo, um método "ligar()" pode ser implementado de maneiras diferentes para um "CarroEletrico", que liga um motor elétrico, e um "CarroCombustao", que liga um motor a combustão. É correto o que se afirma em: A I, II e III, apenas. B II e IV, apenas. C III e IV, apenas. D I, II, III e IV. E I, apenas. 10 Imprimir 30/09/2025, 19:31 Avaliação I - Individual about:blank 8/8