Prévia do material em texto
Revisar envio do teste: Clique aqui para iniciar o Quiz SP_GRAD_686284_2304_01 2304-PROGRAMAÇÃO ORIENTADA A OBJETOS Quiz REVISAR ENVIO DO TESTE: CLIQUE AQUI PARA INICIAR O QUIZ Usuário FELIPE AUGUSTO SANTINHO Curso 2304-PROGRAMAÇÃO ORIENTADA A OBJETOS Teste Clique aqui para iniciar o Quiz Iniciado 11/11/23 16:06 Enviado 11/11/23 16:17 Data de vencimento 06/12/23 23:59 Status Completada Resultado da tentativa 10 em 10 pontos Tempo decorrido 11 minutos Resultados exibidos Todas as respostas, Respostas enviadas, Respostas corretas, Comentários Pergunta 1 Instanciação de objetos em C# ou em qualquer outra linguagem orientada a objetos é o processo de criação de uma instância de uma classe específica, ou seja, é reservado um espaço de memória no qual você poderá atribuir valores aos atributos da classe. É possível ter múltiplas instâncias de uma classe em um mesmo programa, cada um com valores diferentes para seus atributos. Neste contexto, analise o código a seguir e assinale a alternativa que contém a saída da execução: class Veiculo { public string Marca { get; set; } public string Modelo { get; set; } public int Ano { get; set; } public string Placa { get; set; } public Veiculo() { Marca = ""; Modelo = ""; Ano = 0; Placa = ""; } public Veiculo(string marca, string modelo, int ano, string placa) { Marca = marca; Sala de Aula Tutoriais 1 em 1 pontos FELIPE AUGUSTO SANTINHO 142 https://senacsp.blackboard.com/webapps/blackboard/execute/courseMain?course_id=_227856_1 https://senacsp.blackboard.com/webapps/blackboard/content/listContent.jsp?course_id=_227856_1&content_id=_10295249_1&mode=reset https://www.ead.senac.br/ https://senacsp.blackboard.com/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_260_1 https://senacsp.blackboard.com/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_210_1 https://senacsp.blackboard.com/webapps/login/?action=logout Resposta Selecionada: b. Respostas: a. b. c. d. e. Comentário da resposta: Modelo = modelo; Ano = ano; Placa = placa; } } class Program { sta�c void Main(string[] args) { Veiculo carro1 = new Veiculo(); Veiculo carro2 = new Veiculo("Ford", "Fiesta", 2022, "ABC-1234"); Console.WriteLine("Carro 1: " + carro1.Marca + " " + carro1.Modelo + " " + carro1.Ano + " " + carro1.Placa); Console.WriteLine("Carro 2: " + carro2.Marca + " " + carro2.Modelo + " " + carro2.Ano + " " + carro2.Placa); Console.ReadKey(); } } Carro 1: 0 Carro 2: Ford Fiesta 2022 ABC-1234 Carro 1: Ford Fiesta 2022 ABC-1234 Carro 1: 0 Carro 2: Ford Fiesta 2022 ABC-1234 Carro 1: Ford Fiesta 2022 Carro 2: Ford Fiesta 2022 ABC-1234 Carro 1: Ford Fiesta 0 ABC-1234 Carro 2: Ford Fiesta 2022 ABC-1234 O código possui um erro, pois os dados do “carro1” não existem Alternativa correta b Carro 1: 0 Carro 2: Ford Fiesta 2022 ABC-1234 A saída para o carro 1 é somente “Carro 1: 0” por que no C# o valor padrão das variáveis do tipo String é vazio, mas o valor padrão para int é 0. Pergunta 2 Leia as seguintes afirmações sobre os padrões GoF: I. Os padrões GoF são divididos em três grupos: criacionais, estruturais e comportamentais. II. Os padrões GoF são soluções genéricas para problemas recorrentes em projeto de software orientado a objetos. 1 em 1 pontos Resposta Selecionada: c. Respostas: a. b. c. d. e. Comentário da resposta: III. Os padrões GoF são aplicados diretamente no código-fonte sem adaptações ao contexto do problema. IV. Os padrões GoF estabelecem um vocabulário comum de desenho entre os desenvolvedores. Escolha a alternativa que só indique frases corretas. I, II e IV I, II e III II, III e IV I, II e IV I, III e IV I e III Alternativa Correta: C Justificativa: Os padrões GoF são divididos em três grupos que apresentam soluções genéricas para problemas recorrentes. Além disso, estabelecem um vocabulário comum entre os desenvolvedores. Pergunta 3 Resposta Selecionada: a. Respostas: a. b. c. Em programação orientada a objetos o encapsulamento é um dos conceitos principais que caracterizam este paradigma de programação. Assinale a alternativa que contenha a definição mais adequada para encapsulamento: O encapsulamento visa esconder detalhes de implementação dos objetos, expondo somente atributos e métodos necessários para quem irá usá-lo. O encapsulamento visa esconder detalhes de implementação dos objetos, expondo somente atributos e métodos necessários para quem irá usá-lo. O encapsulamento é responsável por armazenar atributos e métodos de um objeto dentro de uma classe. O encapsulamento permite a comunicação entre classes através de métodos públicos. 1 em 1 pontos d. e. Comentário da resposta: O encapsulamento visa esconder todos os atributos e métodos de uma classe. O encapsulamento armazena e controla o acesso a atributos e métodos, permitindo somente que subclasses tenham acesso aos atributos e que somente alguns métodos sejam públicos. Alternativa a O encapsulamento visa esconder detalhes de implementação dos objetos, expondo somente atributos e métodos necessários para quem irá usá-lo. Pergunta 4 Resposta Selecionada: b. Respostas: a. b. c. d. Segundo o dicionário Dicio (2022) objeto é “Coisa material que pode ser percebida pelos sentidos (visão, audição, tato, olfato e paladar): uma bola é um objeto, um lápis é um objeto, um celular é um objeto.”. Partindo desta definição percebemos que praticamente qualquer coisa pode ser um objeto, desde algo que conseguimos ver, apalpar e até mesmo sentir seu cheiro. Sobre a definição de objeto em Programação Orientada a Objetos, é correto afirmar: Os objetos não representam uma categoria de objetos e sim coisas específicas, por exemplo, um cachorro Shi-Tsu, malhado, fêmea de nome Pipoca é um exemplo de objeto. Os objetos representam uma categoria de coisas, por exemplo, um objeto cachorro é uma representação com atributos e comportamentos de um cachorro e não um cachorro específico que tem um nome e raça definidos. Os objetos não representam uma categoria de objetos e sim coisas específicas, por exemplo, um cachorro Shi-Tsu, malhado, fêmea de nome Pipoca é um exemplo de objeto. Objetos são as instâncias que criamos ao usarmos o comando “new”. Objetos são as classes que criamos, pois elas representam genericamente os objetos. 1 em 1 pontos e. Comentário da resposta: Objetos representam coisas específica e são independentes do observador, ou seja, não importa a pessoa que está modelando o sistema, o objeto deve ser sempre igual a forma como é observado no mundo real. Alternativa b Os objetos não representam uma categoria de objetos e sim coisas específicas, por exemplo, um cachorro Shi-Tsu, malhado, fêmea de nome Pipoca é um exemplo de objeto. Os objetos dependem de um observador para serem caracterizados, pois pessoas em contextos diferentes podem olhar para o mesmo objeto do mundo real e pensar em atributos e comportamentos diferentes que os caracterizam Pergunta 5 Resposta Selecionada: d. Respostas: a. b. c. d. e. Comentário da resposta: Analise as afirmações a seguir: I. A herança permite a reutilização eficiente de código, evitando a redundância e o uso desnecessário de recursos. Além disso, ela permite organizar as classes em uma hierarquia lógica, facilitando a compreensão e a manutenção do código. II. A herança é uma técnica avançada de programação que permite a criação de novas classes a partir de classes existentes. Isso permite a reutilização eficiente de código, bem como a implementação de polimorfismo e a organização de conceitos em uma estrutura clara e coerente. III. A herança é uma técnica que não tem muita utilidade na programação orientada a objetos, uma vez que é possível atingir os mesmos resultados usando outras técnicas, como a composição. IV. A herança é uma técnica de programação que permite a criação de novas classes a partir de classes existentes. Isso aumenta a complexidade do código e dificultaa compreensão e a manutenção dele. Assinale a alternativa correta: Somente a afirmação I é verdadeira Somente as afirmações III e IV são verdadeiras Todas as afirmações são verdadeiras Todas as afirmações são falsas Somente a afirmação I é verdadeira Somente a afirmação III é verdadeira Alternativa correta d A herança permite a reutilização eficiente de código, evitando a 1 em 1 pontos redundância e o uso desnecessário de recursos. Além disso, ela permite organizar as classes em uma hierarquia lógica, facilitando a compreensão e a manutenção do código. Pergunta 6 Resposta Selecionada: e. Respostas: a. b. c. d. e. Comentário da resposta: Na Unity temos a classe “MonoBehaviour” que devemos herdar para construir nossos objetos do jogo. Considere as seguintes afirmações: I. Podemos utilizar sobrescrita de métodos, uma técnica de polimorfismo, herdando da classe “MonoBehaviour” e sobrescrevendo os métodos que desejamos implementar, como por exemplo o método “Update”. II. Devemos utilizar a técnica de polimorfismo chamado sobrecarga de métodos para reimplementar os métodos de “MonoBehaviour”. III. Não podemos sobrescrever somente um método da classe “MonoBehaviour”, pois, por estarmos usando técnica de polimorfismo, precisamos sobrescrever todos os métodos. Assinale a alternativa correta: Somente a afirmação I está correta Todas as afirmações estão corretas Somente a II está correta Somente a III está correta Somente as afirmações I e II estão corretas Somente a afirmação I está correta Alternativa correta e Podemos utilizar sobrescrita de métodos, uma técnica de polimorfismo, herdando da classe “MonoBehaviour” e sobrescrevendo os métodos que desejamos implementar, como por exemplo o método “Update”. Pergunta 7 Sobre encapsulamento, analise o código abaixo e assinale a alternativa correta: class ContaBancaria { private decimal saldo; public decimal Saldo { get { return saldo; } set { saldo = value; } 1 em 1 pontos 1 em 1 pontos Resposta Selecionada: b. Respostas: a. b. c. d. e. Comentário da resposta: } public void Depositar(decimal valor) { saldo += valor; } public void Sacar(decimal valor) { saldo -= valor; } } A propriedade “Saldo” é a única forma de acessar o atributo “saldo” A classe “ContaBancaria” não possui nenhum mecanismo de proteção dos dados A propriedade “Saldo” é a única forma de acessar o atributo “saldo” O atributo “saldo” é acessível diretamente por outras classes O método “Sacar” não pode ser acessado por outras classes O método “Depositar” não pode ser acessado por outras classes Alternativa correta b A propriedade “Saldo” é a única forma de acessar o atributo “saldo”. O encapsulamento em C# permite controlar o acesso aos dados através da declaração de membros como privados ou públicos. No exemplo, o atributo “saldo” é privado, e a propriedade “Saldo” é pública, os métodos “Depositar” e “Sacar” são públicos. Pergunta 8 Com base no diagrama de classes apresentado abaixo, responda: Qual a associação representada entre as classes "Venda" e "Produto" no diagrama de classes acima? 1 em 1 pontos Resposta Selecionada: a. Respostas: a. b. c. d. e. Comentário da resposta: Associação de agregação Associação de agregação Associação de composição Associação de dependência Associação de herança Associação de classe associativa Alternativa correta: A Justificativa: A associação entre as classes "Venda" e "Produto" é uma associação de agregação, representada por um losango branco preenchido. Essa associação indica que a classe "Venda" possui uma referência para a classe "Produto", ou seja, uma instância de "Venda" pode estar associada a uma ou a várias instâncias de "Produto". Pergunta 9 Resposta Selecionada: c. Respostas: a. b. c. d. Qual é o propósito dos padrões de criação (creational patterns), segundo o catálogo dos padrões GoF São padrões que permitem alterar o comportamento de um objeto em tempo de execução dependendo do seu estado interno. São padrões que fornecem uma interface para criar famílias de objetos relacionados ou dependentes sem especificar suas classes concretas São padrões que definem como um ou mais objetos se comunicam entre si sem acoplamento forte ou referências explícitas. São padrões que permitem alterar o comportamento de um objeto em tempo de execução dependendo do seu estado interno. São padrões que abstraem o processo de instanciação de objetos e permitem que os objetos sejam criados de maneiras diferentes. 1 em 1 pontos Sábado, 11 de Novembro de 2023 16h18min01s BRT e. Comentário da resposta: São padrões que encapsulam algoritmos variáveis dentro de uma classe selecionada em tempo de execução. Alternativa correta: C Justificativa: O conjunto de padrões de criação descrevem soluções para problemas de instanciação de objetos, ou seja, sua criação durante a execução do programa. Pergunta 10 Resposta Selecionada: e. Respostas: a. b. c. d. e. Comentário da resposta: Quais são os elementos básicos de um diagrama de classes? Classes, atributos, métodos e relações Nós, artefatos, manifestações e implantações Objetos, estados, transições e eventos Casos de uso, atores, cenários e fluxos Componentes, interfaces, portas e conectores Classes, atributos, métodos e relações Alternativa correta: E Justificativa: Os atributos básicos são as classes e elas são descritas pelos seus atributos e métodos; além disso, no diagrama de classes UML, usamos as relações para indicar como as classes se relacionam umas com as outras. ← OK 1 em 1 pontos