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