Prévia do material em texto
<p>AO2</p><p>Iniciado: 3 jun em 15:22</p><p>Instruções do teste</p><p></p><p>Pergunta 1 0,6 pts</p><p>Importante:</p><p>Caso você esteja realizando a atividade através do aplicativo "Canvas Student", é necessário que</p><p>você clique em "FAZER O QUESTIONÁRIO", no final da página.</p><p>Leia o texto a seguir:</p><p>Ao dirigir um carro, o ato de pressionar o acelerador envia uma mensagem para o veículo realizar</p><p>uma tarefa — isto é, ir mais rápido. Da mesma forma, você envia mensagens para um objeto. Cada</p><p>mensagem é implementada como uma chamada de método que informa a um método do objeto a</p><p>maneira de realizar sua tarefa. Por exemplo, um programa pode chamar o método depósito de</p><p>um objeto conta bancária para aumentar o saldo da conta.</p><p>Fonte: DEITEL, H.; DEITEL, P. Java: como programar. 10. ed. São Paulo: Pearson Education do</p><p>Brasil, 2017. p. 9. Adaptado.</p><p>Considerando o exemplo em destaque no fim do texto acima, assinale a opção que melhor</p><p>descreve como representar o valor a ser depositado.</p><p>O valor a ser depositado seria um parâmetro do método depósito.</p><p>O valor a ser depositado seria uma exceção da classe conta bancária.</p><p>O valor a ser depositado seria um atributo do objeto conta bancária.</p><p>O valor a ser depositado seria uma classe filha da classe conta bancária.</p><p>O valor a ser depositado deve ser determinado internamente pelo método depósito, seguindo o princípio da</p><p>abstração.</p><p>A+</p><p>A</p><p>A-</p><p>03/06/2024, 15:46 Teste: AO2</p><p>https://famonline.instructure.com/courses/35616/quizzes/176671/take 1/11</p><p></p><p>Pergunta 2 0,6 pts</p><p></p><p>Pergunta 3 0,6 pts</p><p>Leia o texto a seguir:</p><p>Uma nova classe de objetos pode ser criada convenientemente por meio de herança — ela</p><p>(chamada subclasse) começa com as características de uma classe existente (chamada</p><p>superclasse), possivelmente as personalizando e adicionando aspectos próprios. Na nossa analogia</p><p>do carro, um objeto da classe “conversível” decerto é um objeto da classe mais geral “automóvel”,</p><p>mas, especificamente, o teto pode ser levantado ou baixado.</p><p>Fonte: DEITEL, H.; DEITEL, P. Java: como programar. 10. ed. São Paulo: Pearson Education do</p><p>Brasil, 2017, pp. 9-10.</p><p>Considerando a analogia acima, assinale a alternativa correta:</p><p>O método para levantar ou abaixar o teto existe em “automóvel”, mas deve ser sobrecarregado.</p><p>O método para levantar ou abaixar o teto não existe em “automóvel”, mas pode ser criado em “conversível”.</p><p>O método para levantar ou abaixar o teto existe em “automóvel”, mas só poderá ser usado em “conversível” se for</p><p>protected ou public.</p><p>O método para levantar ou abaixar o teto existe em “automóvel” e pode ser usado diretamente em “conversível” por</p><p>herança.</p><p>O método para levantar ou abaixar o teto existe em “automóvel”, mas deve ser sobreposto.</p><p>Leia o texto a seguir:</p><p>Grupos de desenvolvimento de software podem usar uma abordagem modular de projeto e</p><p>implementação orientados a objetos para que sejam muito mais produtivos do que com as técnicas</p><p>anteriormente populares como “programação estruturada” — programas orientados a objetos são</p><p>muitas vezes mais fáceis de entender, corrigir e modificar.</p><p>A+</p><p>A</p><p>A-</p><p>03/06/2024, 15:46 Teste: AO2</p><p>https://famonline.instructure.com/courses/35616/quizzes/176671/take 2/11</p><p></p><p>Pergunta 4 0,6 pts</p><p>Fonte: DEITEL, H.; DEITEL, P. Java: como programar. 10. ed. São Paulo: Pearson Education do</p><p>Brasil, 2017, p. 8.</p><p>Considerando as informações apresentadas, analise as afirmações abaixo:</p><p>I. A programação orientada a objeto é um conjunto de princípios, portanto pode ser aplicada em</p><p>qualquer linguagem, desde que o programador siga seus princípios.</p><p>II. Programas orientados a objeto possuem melhor desempenho do que programas feitos utilizando</p><p>apenas “programação estruturada”, ou seja, são mais rápidos e usam menos memória.</p><p>IV. Programas orientados a objeto possuem grande capacidade de reutilização de código, gerando</p><p>códigos menores e fáceis de propagar correções ou novas funcionalidades.</p><p>Estão corretas as afirmações:</p><p>II, apenas.</p><p>I e III, apenas.</p><p>I e II, apenas.</p><p>II e III, apenas.</p><p>III, apenas.</p><p>Leia o texto a seguir:</p><p>Assim como os desenhos de engenharia de um carro podem ser reutilizados várias vezes para</p><p>fabricar muitos carros, você pode reutilizar uma classe muitas vezes para construir vários objetos. A</p><p>reutilização de classes existentes ao construir novas classes e programas economiza tempo e</p><p>esforço. Também ajuda a construir sistemas mais confiáveis e eficientes, porque classes e</p><p>componentes existentes costumam passar por extensos testes, depuração e ajuste de desempenho.</p><p>A+</p><p>A</p><p>A-</p><p>03/06/2024, 15:46 Teste: AO2</p><p>https://famonline.instructure.com/courses/35616/quizzes/176671/take 3/11</p><p></p><p>Pergunta 5 0,6 pts</p><p>Assim como a noção das partes intercambiáveis foi crucial para a Revolução Industrial, classes</p><p>reutilizáveis são fundamentais para a revolução de software que foi estimulada pela tecnologia de</p><p>objetos.</p><p>Fonte: DEITEL, H.; DEITEL, P. Java: como programar. 10. ed. São Paulo: Pearson Education do</p><p>Brasil, 2017, p. 9.</p><p>Considerando as informações apresentadas, avalie as asserções abaixo e a relação proposta entre</p><p>elas.</p><p>I. A programação orientada a objeto adota princípios como a abstração, o encapsulamento, a</p><p>herança e o polimorfismo.</p><p>PORQUE</p><p>II. Os quatro princípios da programação orientada a objeto combinados dão origem ao princípio</p><p>“Write Once, Run Anywhere”, em que o código é compilado uma única vez e pode ser reutilizado em</p><p>qualquer computador.</p><p>A respeito dessas asserções, assinale a opção correta.</p><p>As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I.</p><p>A asserção I é uma proposição falsa e a asserção II é uma proposição verdadeira.</p><p>A asserção I é uma proposição verdadeira, e a asserção II é uma proposição falsa.</p><p>As asserções I e II são proposições falsas.</p><p>As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I.</p><p>Analise o código abaixo:</p><p>A+</p><p>A</p><p>A-</p><p>03/06/2024, 15:46 Teste: AO2</p><p>https://famonline.instructure.com/courses/35616/quizzes/176671/take 4/11</p><p></p><p>void foo (Automovel a) {</p><p>a.locomocao();</p><p>}</p><p>void bar () {</p><p>Conversivel c = new Conversivel();</p><p>foo(c);</p><p>}</p><p>Sabendo que Conversivel é subclasse de Automovel, analise as afirmações abaixo sobre o código:</p><p>I. Na função bar, c é um Automovel.</p><p>II. Na função foo, a é um Conversivel.</p><p>III. No método bar, o método sendo chamado na primeira linha é determinado em tempo de</p><p>compilação.</p><p>IV. No método foo, o método sendo chamado na primeira linha é determinado em tempo de</p><p>compilação.</p><p>São corretas as afirmações:</p><p>II e IV, apenas.</p><p>I e III, apenas.</p><p>III e IV, apenas.</p><p>I e II, apenas.</p><p>II e III, apenas.</p><p>A+</p><p>A</p><p>A-</p><p>03/06/2024, 15:46 Teste: AO2</p><p>https://famonline.instructure.com/courses/35616/quizzes/176671/take 5/11</p><p>Pergunta 6 0,6 pts</p><p></p><p>Pergunta 7 0,6 pts</p><p>Analise o código abaixo:</p><p>abstract class Pessoa {</p><p>public String nome;</p><p>public Pessoa(){</p><p>// ...</p><p>}</p><p>private void anda()</p><p>{</p><p>// ...</p><p>}</p><p>protected abstract void fala();</p><p>}</p><p>Considerando o código exposto acima, por que não podemos criar objetos da classe Pessoa?</p><p>Porque ela é uma interface.</p><p>Porque ela possui erros: atributo público e métodos private e protected.</p><p>Porque ela não possui get e set para seu atributo.</p><p>Porque faltou implementar o método fala.</p><p>Porque ela é uma classe abstrata e serve apenas para herança.</p><p>Observe o código a seguir:</p><p>A+</p><p>A</p><p>A-</p><p>03/06/2024, 15:46 Teste: AO2</p><p>https://famonline.instructure.com/courses/35616/quizzes/176671/take 6/11</p><p></p><p>Pergunta 8 0,6 pts</p><p>class Carregador {</p><p>float tensao;</p><p>float corrente;</p><p>float potencia;</p><p>public Carregador() {</p><p>// ...</p><p>}</p><p>public void carregar(Bateria b) {</p><p>// ...</p><p>}</p><p>}</p><p>Assinale a afirmação correta sobre o código acima:</p><p>Um dos métodos da classe Carregador é “corrente”.</p><p>Um dos atributos da classe Carregador é “Bateria”.</p><p>Um dos atributos da classe Carregador é “carregar”.</p><p>A classe Carregador sobrecarrega</p><p>construtores.</p><p>Existe outra classe chamada “Bateria”.</p><p>Leia o texto a seguir:</p><p>A+</p><p>A</p><p>A-</p><p>03/06/2024, 15:46 Teste: AO2</p><p>https://famonline.instructure.com/courses/35616/quizzes/176671/take 7/11</p><p></p><p>Pergunta 9 0,6 pts</p><p>Quando uma classe implementa uma interface, o mesmo relacionamento “é um” fornecido por</p><p>herança se aplica. A classe Employee implementa Payable, assim podemos dizer que um Employee</p><p>é uma Payable. De fato, objetos de quaisquer classes que estendem Employee também são objetos</p><p>Payable. Os objetos de quaisquer subclasses da classe que implementa a interface também podem</p><p>ser pensados como objetos do tipo de interface.</p><p>Fonte: DEITEL, H.; DEITEL, P. Java: como programar. 10. ed. São Paulo: Pearson Education do</p><p>Brasil, 2017, p. 337. Adaptado.</p><p>Considerando as informações apresentadas, avalie as asserções abaixo e a relação proposta entre</p><p>elas:</p><p>I. Existe uma relação de polimorfismo entre uma classe que implementa uma interface e a interface,</p><p>isso é, objetos da classe podem ser tratados como objetos “da interface”.</p><p>PORQUE</p><p>II. A relação entre uma classe e uma interface pode ser utilizada para realizar herança, transmitindo</p><p>códigos prontos, como métodos, que podem ser utilizados pelos objetos de suas subclasses, apesar</p><p>de ser impossível instanciar objetos de uma interface.</p><p>A respeito dessas asserções, assinale a opção correta:</p><p>A asserção I e a asserção II são proposições falsas.</p><p>A asserção I é uma proposição verdadeira, e a asserção II é uma proposição falsa.</p><p>A asserção I é uma proposição falsa e a asserção II é uma proposição verdadeira</p><p>A asserção I e a asserção II são proposições verdadeiras, mas a II não é uma justificativa correta da I.</p><p>A asserção I e a asserção II são proposições verdadeiras, e a II é uma justificativa correta da I.</p><p>A+</p><p>A</p><p>A-</p><p>03/06/2024, 15:46 Teste: AO2</p><p>https://famonline.instructure.com/courses/35616/quizzes/176671/take 8/11</p><p>Leia o texto a seguir:</p><p>O compilador verifica cada chamada de método e declaração de método para determinar se ele</p><p>lança uma exceção verificada. Se sim, o compilador checa se a exceção verificada é capturada ou é</p><p>declarada em uma cláusula throws — isso é conhecido como requisito “capture ou declare” (catch-</p><p>or-declare). Lembre-se de que a cláusula throws especifica as exceções que um método lança. Tais</p><p>exceções não são capturadas no corpo do método. Para satisfazer a parte capture do requisito</p><p>capture ou declare, o código que gera a exceção deve ser empacotado em um bloco try e fornecer</p><p>uma rotina de tratamento catch para o tipo de exceção verificada (ou uma de suas superclasses).</p><p>Para satisfazer a parte declare do requisito capture ou declare, o método contendo o código que</p><p>gera a exceção deve fornecer uma cláusula throws contendo o tipo de exceção verificada depois de</p><p>sua lista de parâmetros e antes do corpo do método. Se o requisito “capture ou declare” não for</p><p>atendido, o compilador emitirá uma mensagem de erro.</p><p>Fonte: DEITEL, H.; DEITEL, P. Java: como programar. 10. ed. São Paulo: Pearson Education do</p><p>Brasil, 2017, p. 356. Adaptado.</p><p>Considerando as informações apresentadas, analise as afirmações abaixo:</p><p>I. Se um método “A” chama um método “B” que lança exceções, “A” deve necessariamente as</p><p>capturar.</p><p>II. Como exceções podem ser capturadas ou lançadas, uma exceção não tratada não provocará</p><p>erro, desde que seja lançada por todos os métodos na pilha.</p><p>III. Um método não é obrigado a capturar uma exceção, desde que ele a lance.</p><p>IV. Um método não é obrigado a lançar uma exceção, desde que ele a capture.</p><p>Estão corretas as afirmações:</p><p>I e III, apenas.</p><p>A+</p><p>A</p><p>A-</p><p>03/06/2024, 15:46 Teste: AO2</p><p>https://famonline.instructure.com/courses/35616/quizzes/176671/take 9/11</p><p></p><p>Pergunta 10 0,6 pts</p><p>II, III e IV, apenas.</p><p>I e II, apenas.</p><p>I, II e IV, apenas.</p><p>III e IV, apenas.</p><p>Leia o texto a seguir:</p><p>A maioria das declarações de variável de instância é precedida pela palavra-chave private. Da</p><p>mesma forma que public, private é um modificador de acesso. As variáveis ou métodos declarados</p><p>com o modificador de acesso private só são acessíveis a métodos da classe em que isso ocorre.</p><p>Fonte: DEITEL, H.; DEITEL, P. Java: como programar. 10. ed. São Paulo: Pearson Education do</p><p>Brasil, 2017, p. 58.</p><p>Considerando as informações apresentadas, avalie as asserções abaixo e a relação proposta entre</p><p>elas.</p><p>I. O uso de métodos get e set públicos em atributos private constitui uma violação do</p><p>encapsulamento da classe.</p><p>PORQUE</p><p>II. Métodos get e set permitem, respectivamente, ler e modificar o valor do atributo, e métodos</p><p>públicos são visíveis para todo o projeto.</p><p>A respeito dessas asserções, assinale a opção correta:</p><p>A asserção I é uma proposição verdadeira e a asserção II é uma proposição falsa.</p><p>A+</p><p>A</p><p>A-</p><p>03/06/2024, 15:46 Teste: AO2</p><p>https://famonline.instructure.com/courses/35616/quizzes/176671/take 10/11</p><p>Salvo em 15:46</p><p>A asserção I é uma proposição falsa e a asserção II é uma proposição verdadeira.</p><p>As asserções I e II são proposições verdadeiras, mas a asserção II não é uma justificativa correta da I.</p><p>As asserções I e II são proposições falsas.</p><p>As asserções I e II são proposições verdadeiras e a asserção II é uma justificativa correta da I.</p><p>Enviar teste</p><p>A+</p><p>A</p><p>A-</p><p>03/06/2024, 15:46 Teste: AO2</p><p>https://famonline.instructure.com/courses/35616/quizzes/176671/take 11/11</p>