Prévia do material em texto
Data limite para aplicação desta prova: IMPORTANTE UNIP EAD Código da Prova: Curso: CIÊNCIA DA COMPUTAÇÃO Série: 4 Tipo: Disciplina - AP Aluno: I - Questões objetivas – valendo 10 pontos Gerada em: Instruções para a realização da prova: 1. Leia as questões com atenção. 2. Confira seu nome e RA e verifique se o caderno de questão e folha de respostas correspondem à sua disciplina. 3. Faça as marcações primeiro no caderno de questões e depois repasse para a folha de respostas. 4. Serão consideradas somente as marcações feitas na folha de respostas. 5. Não se esqueça de assinar a folha de respostas. 6. Utilize caneta preta para preencher a folha de respostas. 7. Preencha todo o espaço da bolha referente à alternativa escolhida, a caneta, conforme instruções: não rasure, não preencha X, não ultrapasse os limites para preenchimento. 8. Preste atenção para não deixar nenhuma questão sem assinalar. 9. Só assinale uma alternativa por questão. 10. Não se esqueça de responder às questões discursivas, quando houver, e de entregar a folha de respostas para o tutor do polo presencial, devidamente assinada. 11. Não é permitido consulta a nenhum material durante a prova, exceto quando indicado o uso do material de apoio. 12. Lembre-se de confirmar sua presença através da assinatura digital (login e senha). Boa prova! Questões de múltipla escolha Disciplina: 796790 - LINGUAGEM DE PROGRAMAÇÃO ORIENTADA À OBJETOS Questão 1: Seguindo as regras de promoção (promotion) de tipos de dados, as linhas a seguir mostram alguns blocos de código que utilizam casting. Qual das alternativas demonstra um comando que vai gerar um erro de compilação? long a1 = 10L; float a2 = 3.15; double a3 = 9.8; A) Long x = a1+ (int) a3; B) Double x = a1 + a2 + a3; C) Int x = (long)a3 + a1; → Resposta Correta D) Int x = (int) a2 + (int) a3; E) Float x = a1 + a2; Questão 2: As afirmações a seguir se referem às estruturas de condicionais. Analise estas afirmações e assinale a alternativa correta. A) A estrutura “switch - case” possui uma funcionalidade “default” que é equivalente ao bloco “else” da estrutura “if - else”, de modo que o valor somente será executado se todas as alternativas previamente estabelecidas dentro desta estrutura resultarem em falso. → Resposta Correta B) A estrutura “if - else” não permite a comparação de lógicas de igualdade, sendo necessário utilizar um valor aproximado ou utilizar-se da estrutura “switch - case”. C) A estrutura “if - else if” possui um limite de possíveis comparações; caso ele atinja este limite, é necessário iniciar outra estrutura, não sendo possível ultrapassar este valor padrão. D) A estrutura “switch - case” é uma estrutura condicional que apenas atende a um tipo de condição, não sendo possível realizar vários tipos de condições de um mesmo parâmetro. E) A estrutura “if - else”, mesmo que possua apenas uma única linha, necessita que se estabeleçam os blocos com chaves ( {...bloco...} ). Questão 3: O encapsulamento é um dos pilares do paradigma da programação orientada a objeto, e um recurso que nos permite a “proteção” de atributos e métodos de uma classe, modificando a maneira de como trabalhamos com nossos métodos e atributos, porque: A) Permite um código mais seguro, porém implica na herança, pois restringe certos acessos a métodos e atributos pela subclasse. B) Utiliza um padrão de acesso, garantindo mais confiabilidade no código, quando utilizado em forma de plataforma web. C) Garante a proteção dos dados que estão sendo utilizados, sem eles é possível que ocorra perda de informação durante a manipulação dos dados. D) Permite controlar a manipulação de métodos e atributos de uma classe. → Resposta Correta E) Restringe o acesso a estes métodos e atributos sem uma validação. Questão 4: A utilização de modificadores de acesso permite criarmos um controle maior sobre quais partes de nosso código conseguem acessar determinados atributos, métodos ou classes, descrevendo como podem ser acessados. Dentre eles, existe um modificador que nos permite ter acesso ao seus métodos e atributos quando ele estiver no mesmo pacote; um exemplo de utilização deste modificador está descrito na alternativa: A) protected String nomeCategoria → Resposta Correta B) public String nomeCategoria C) private String nomeCategoria D) package String nomeCategoria E) default String nomeCategoria Questão 5: Em um sistema de mercado, existe uma ArrayList que é responsável por listar todos os objetos já cadastrados em uma única lista, facilitando a visualização dos produtos cadastrados. O código a seguir mostra como esta lista está sendo preenchida. ... public void listarProdutos(ArrayList estoque){ for(int i=0; i < estoque.size(); i++){ Produto p = ; //... demais ações } } ... Complete a lacuna com o comando correto para pegar o objeto de um ArrayList de um produto. A) (Produto) estoque B) estoque.get(i) → Resposta Correta C) estoque.getById(i); D) estoque.produto(i) E) produto.get(estoque.retrieve(i)) Questão 6: As estruturas de repetição permitem que determinado bloco de instruções sejam executadas um número finito de vezes, realizando instruções o quanto for necessário; dentre eles, temos os laços de repetição “for” e “while”, e sobre eles, podemos afirmar que: A) Uma estrutura de repetição é aquela que é controlada por uma condição mutável que se adapta às necessidades de repetição de um bloco de instruções. B) A estrutura “for” de repetição contém uma variável de controle, em que ele é sempre verificado através de uma comparação que acontece antes da execução de uma nova iteração. → Resposta Correta C) A estrutura “while” de repetição é verificada apenas no final da execução de uma iteração; assim, é necessário lembrar que este laço de repetição sempre vai executar uma vez a mais. D) Independentemente do laço de repetição utilizado, não é preciso criar uma condição na qual ele verifica se é necessário fazer uma nova iteração, possibilitando o uso do comando “break” para interromper a repetição. E) Sempre é possível realizar a conversão entre estruturas de repetição “for” para uma “while”, mas uma instrução criada para uma estrutura “while” não pode ser convertida em uma instrução “for”. Questão 7: A partir de uma classe é possível gerar várias instâncias de um determinado tipo de projeto, e dentro dela podemos criar um método construtor que ele é acionado toda vez que um novo objeto é criado, podendo criar um objeto e já estabelecendo seus valores em uma única linha, podendo ter vários construtores em uma única classe. Olhando o método construtor a seguir, como o Java sabe qual tipo de método construtor está sendo chamado? public class Pessoa { // atributos da Classe Pessoa public Pessoa(String s) { nome = s; } public Pessoa(String s, int i) { nome = s; idade = i; } public Pessoa(String s, int i, double d) { nome = s; idade = i; altura = d; } } A) A partir do tipo de dado dos parâmetros, é possível fazer a distinção entre os tipos de métodos construtores existentes, podendo ser repetidos para criar objetos de formas diferentes. B) A distinção dos métodos construtores está na quantidade e no tipo de elementos que estão sendo usados como parâmetros na hora da criação do objeto. → Resposta Correta C) Para diferenciar qual método construtor que está sendo utilizado, é necessário renomear estes métodos na hora de instanciar um objeto. D) Quando o objeto for instanciado, utiliza-se a assinatura do método construtor quando possui mais de um tipo de método construtor, indicando ao programa qual tipo de construtor está sendo utilizado. E) Quando o objeto é instanciado, ele busca todos os métodos construtores previamente criados, encaixando-o no que é adequado, independentemente da quantidade e do tipo deparâmetros, podendo haver mais de um método construtor com a mesma assinatura. Questão 8: Observe os métodos da classe a seguir: public int metodo01 (String p) {...} public void metodo02 () {...} public double metodo03 (int p1, int p2) {...} public void metodo04 (String p) {...} public String metodo05 (double p) {...} Esta classe está instanciada com o nome de obj. Qual das alternativas mostra uma codificação que vai gerar erros quando executada? A) int k = metodo01(“01230”); B) System.out.println(obj.metodo02()); C) obj.metodo04(“Olá mundo”); D) double k = metodo03(5,80); E) int k = metodo05(7); → Resposta Correta Questão 9: Analise as afirmações a seguir e assinale a alternativa correta: I. A criação de um objeto (no caso, instanciá-lo) é feita a partir de um molde contendo as informações necessárias (métodos e atributos) previamente estabelecidas no programa fonte. II. Para iniciar-se a execução de um programa Java, é necessário que ele possua uma classe main; ela é responsável por iniciar a execução do programa, sendo necessário existir em todas as classes que serão inicializadas junto à aplicação. III. Ao utilizarmos objetos como parâmetros, não conseguimos distinguir qual parte de sua informação estamos utilizando, pois dentro de um objeto podemos ter uma variedade de tipos de dados, além de seus dados previamente guardados, por isso é recomendado retirar um valor de dentro do objeto para depois utilizá-lo. IV. Para instanciar uma classe, é necessário que os métodos e atributos estejam previamente estabelecidos, pois o Java não permite a instanciação de um molde vazio, o que gera erros de compilação. V. O método main é responsável pela execução do programa; sem ele, o Java não sabe onde o programa começa. Este método é necessário em apenas uma classe que indica onde o programa vai inicializar e quais métodos serão necessários para a inicialização do programa. Quais afirmações estão corretas? A) I, IV e V B) I e V → Resposta Correta C) II e IV D) I, III e IV E) II, IV e V Questão 10: O paradigma de Programação Orientada a Objeto tem como princípio a utilização de elementos que representam entidades “do mundo real”, ou seja, elementos existentes em uma situação real, que são abstraídos com suas informações, criando um molde a partir do qual podemos criar: A) Elemento B) Entidade C) Classe D) Objeto → Resposta Correta E) Abstração