Prévia do material em texto
Questões Você acertou 4 de 10 questões Verifique o seu desempenho e continue treinando! Você pode refazer o exercício quantas vezes quiser. Verificar Desempenho 1 Marcar para revisão Ano: 2012 Banca: CESGRANRIO Órgão: Petrobras Prova: CESGRANRIO � 2012 � BR Distribuidora � Profissional Júnior � Formação Analista de Sistemas � Ênfase em Java � Crm e Web. Nas linguagens orientadas a objeto, existe uma diferença entre a referência a um objeto e o valor do objeto. Em Java, o operador == e o método equals, este definido para a classe Object, apresentam comportamento específico, que tem relação com essa característica. Considere o exemplo de um código Java 6 a seguir: public class Questao { public static void main(String [ ] args) { Integer a,b,c,d,e ; int f ; char r1,r2,r3,r4,r5 ; String s ; a=1; b=1; c = a ; d= b; f=1; e = f; r1� � a.equals(b)? 's' : 'n' ) ; r2� � a.equals(c)? 's' : 'n' ) ; r3� � a==d? 's' : 'n' ) ; r4� � a==e? 's' : 'n' ) ; r5� � a.equals(f)? 's' : 'n' ) ; s = " "+r1+r2+r3+r4+r5 ; System.out.println(s) ; } } Executando-se esse código, em que é possível testar como o comportamento exemplificado foi implementado para a classe Integer e o tipo int, a resposta impressa será: A B C D E A impressa será: sssss ssnns snnns nnsss nssss Resposta incorreta Opa! A alternativa correta é a letra A. Confira o gabarito comentado! Gabarito Comentado O código Java apresentado realiza uma série de comparações entre variáveis do tipo Integer e int. As comparações são feitas tanto com o operador == quanto com o método equals. O operador == compara se as referências dos objetos são iguais, enquanto o método equals compara se os valores dos objetos são iguais. No caso do código apresentado, todas as comparações retornam verdadeiro, ou seja, 's'. Portanto, a resposta impressa será 'sssss', o que corresponde à alternativa A. 2 Marcar para revisão Na implementação de um sistema bancário, a classe Conta serve como base para ContaCorrente e ContaPoupanca. Ambas as subclasses sobrescrevem o método calcularJuros, definido em Conta. Qual é um exemplo de sobrescrita de método no cenário descrito? ContaCorrente e ContaPoupanca usam o método calcularJuros de Conta sem alterações. B C D E A B Conta sem alterações. Conta chama o método calcularJuros de suas subclasses. ContaCorrente e ContaPoupanca têm seus próprios métodos calcularJuros, distintos de Conta. O método calcularJuros é exclusivo de ContaCorrente e ContaPoupanca. CalcularJuros é uma interface implementada por ContaCorrente e ContaPoupanca. Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado A sobrescrita de método ocorre quando uma subclasse redefine um método herdado da classe base. Neste caso, ContaCorrente e ContaPoupanca sobrescrevem o método calcularJuros da classe Conta, permitindo que cada tipo de conta tenha uma implementação específica para o cálculo de juros. 3 Marcar para revisão Herança e interfaces são conceitos da orientação a objetos que possibilitam a obtenção de polimorfismo. Em Java, uma interface: Somente permite herança simples. Pode ser instanciada diretamente por meio da instrução new. C D E A B Pode possuir assinaturas de métodos públicos e protegidos. Pode possuir métodos abstratos e estáticos. Pode conter declarações de constantes e de variáveis não inicializadas. Resposta incorreta Opa! A alternativa correta é a letra D. Confira o gabarito comentado! Gabarito Comentado A alternativa correta é a D, que afirma que uma interface em Java pode possuir métodos abstratos e estáticos. Isso ocorre porque, em Java, uma interface é uma espécie de "contrato" que pode ser implementado por qualquer classe. Esse "contrato" é composto por métodos abstratos (métodos que são declarados, mas não implementados) e pode também incluir métodos estáticos (métodos que pertencem à interface, e não a instâncias da interface). Portanto, a afirmação da alternativa D está correta. 4 Marcar para revisão Em um aplicativo de gestão de projetos, uma classe abstrata Funcionario define o método abstrato trabalhar(). As classes Desenvolvedor e Gerente herdam de Funcionario e implementam o método trabalhar() de maneiras específicas para suas funções. Qual é o conceito de programação orientada a objetos ilustrado pelo método trabalhar() nas classes Desenvolvedor e Gerente? Encapsulamento, pois trabalhar() está oculto nas subclasses. Herança múltipla, com Desenvolvedor e Gerente herdando de várias classes. C D E A B C Implementação de interface, onde trabalhar() é um método de uma interface. Polimorfismo, com diferentes implementações do mesmo método em subclasses. Sobrecarga de método, onde trabalhar() tem várias versões com parâmetros diferentes. Resposta incorreta Opa! A alternativa correta é a letra D. Confira o gabarito comentado! Gabarito Comentado Este exemplo demonstra polimorfismo, onde o mesmo método abstrato trabalhar() é implementado de forma única em cada subclasse �Desenvolvedor e Gerente). Isso permite que cada classe execute ações diferentes, apesar de compartilharem o mesmo método da classe base. 5 Marcar para revisão Um jogo de computador utiliza a classe Personagem como base para diferentes tipos de personagens, como Guerreiro e Mago. Cada subclasse possui métodos únicos, como atacar para Guerreiro e conjurar para Mago. Qual característica da programação orientada a objetos é exemplificada pela presença de métodos únicos em Guerreiro e Mago? Encapsulamento, através da ocultação de detalhes internos das subclasses. Herança, com Guerreiro e Mago herdando a estrutura de Personagem. Polimorfismo, permitindo que Guerreiro e Mago sejam tratados como Personagem. D E A B Sobrecarga de métodos, onde métodos com o mesmo nome têm parâmetros diferentes. Especialização, onde subclasses adicionam métodos e atributos específicos. Resposta incorreta Opa! A alternativa correta é a letra E. Confira o gabarito comentado! Gabarito Comentado A especialização é evidenciada na adição de métodos únicos (atacar e conjurar) nas subclasses Guerreiro e Mago. Essa característica permite que cada subclasse expanda e personalize sua funcionalidade além da classe base Personagem. 6 Marcar para revisão Ano: 2018 Banca: FAURGS Órgão: BANRISUL Prova: FAURGS � 2018 � BANRISUL - Desenvolvimento de Sistemas Considere as afirmações abaixo sobre polimorfismo na linguagem de programação JAVA. I � A vinculação tardia ocorre se o compilador escolher um método dentre os possíveis candidatos. II � O polimorfismo indica o princípio de que o tipo real do objeto determina o método a ser chamado. III � A vinculação antecipada ocorre se a escolha do método é feita quando o programa está sendo executado. Quais estão corretas? Apenas I. Apenas II. C D E A B Apenas III. I e II. I, II e III. Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado A alternativa correta é a II. O polimorfismo é um princípio da programação orientada a objetos que permite que objetos de diferentes tipos sejam tratados como objetos de um tipo comum. No contexto da linguagem de programação JAVA, o polimorfismo indica que o tipo real do objeto determina o método a ser chamado. As afirmações I e III estão incorretas. A vinculação tardia ocorre quando a escolha do método é feita durante a execução do programa, não pelo compilador. Já a vinculação antecipada ocorre quando o compilador escolhe o método dentre os possíveis candidatos, não durante a execução do programa. 7 Marcar para revisão Em um software de controle de estoque, uma classe Produto é a base para diferentes categorias de produtos, como Eletrônicos e Vestuário. Cada subclasse adiciona atributos específicos como voltagem para Eletrônicos. No contexto de polimorfismo, qual é a característica correta? Todas as subclasses podem usar métodosexclusivos da classe Produto. Objetos de Eletrônicos e Vestuário podem ser tratados como objetos Produto. C D E A A classe Produto pode instanciar objetos de Eletrônicos e Vestuário. Eletrônicos e Vestuário não podem ter métodos próprios. Produto é uma interface que Eletrônicos e Vestuário implementam. Resposta incorreta Opa! A alternativa correta é a letra B. Confira o gabarito comentado! Gabarito Comentado O polimorfismo permite que objetos de subclasses �Eletrônicos e Vestuário) sejam tratados como objetos da classe base �Produto). Isso facilita a manipulação de diferentes tipos de produtos em um sistema de controle de estoque, sem a necessidade de conhecer a classe específica de cada objeto. 8 Marcar para revisão Ano: 2009 Banca: INSTITUTO CIDADES Órgão: UNIFESP Prova: INSTITUTO CIDADES � 2009 � UNIFESP � Analista de Tecnologia da Informação �ADAPTADA� Acerca do método equals, analise as seguintes afirmativas: I. O equals recebe um Object como argumento e verifica se ele mesmo é igual ao Object recebido para retornar um boolean exclusivamente false. II. Um exemplo do uso do equals é para datas. Se usarmos criar duas datas, isto é, dois objetos diferentes, contendo 18/08/2009, ao comparar com o ==, receberá false, pois são referências para objetos diferentes. III. Quando comparamos duas variáveis referência no Java, o == verifica se as duas variáveis se referem ao mesmo objeto. Podemos afirmar corretamente que: Apenas a afirmativa I está correta. Exercicio Aprofundamento De Herança e Polimorfismo Em Java B C D E A B Apenas a afirmativa II está correta. Apenas a afirmativa III está correta. As afirmativas I e II estão corretas. As afirmativas II e III estão corretas. Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado As afirmativas II e III estão corretas. A afirmativa II é verdadeira porque, ao criar duas datas (ou seja, dois objetos diferentes) com a mesma data �18/08/2009� e compará-las com o operador "==", o resultado será false. Isso ocorre porque o operador "==" compara as referências dos objetos, não seus conteúdos. Como são dois objetos diferentes, suas referências também são diferentes, resultando em false. A afirmativa III também é verdadeira, pois quando comparamos duas variáveis de referência no Java com o operador "==", estamos verificando se ambas as variáveis apontam para o mesmo objeto na memória, não se os conteúdos dos objetos são iguais. 9 Marcar para revisão Ano: 2015 Banca: CETAP Órgão: MPC�PA Prova: CETAP � 2015 � MPCM�PA � Técnico em Informática � Desenvolvimento A herança entre classes, em Java, define-se utilizando a palavra-chave: Inherits References B C D E A B References Matches Extends Implements Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado Na linguagem de programação Java, a herança entre classes é definida utilizando a palavra-chave 'extends'. Esta palavra-chave é usada para indicar que uma classe está sendo derivada de outra classe. As outras opções apresentadas na questão não são utilizadas para definir a herança entre classes em Java. Portanto, a alternativa correta é a 'D'. 10 Marcar para revisão Ano: 2017 Banca: INSTITUTO AOCP Órgão: EBSERH Prova: INSTITUTO AOCP � 2017 � EBSERH � Analista de Tecnologia da Informação � Processos �HUJB � UFCG� Ao desenvolver um sistema utilizando a linguagem JAVA, alguns conceitos fazem parte da programação, como encapsulamento, herança e polimorfismo. No polimorfismo, temos o conceito de cast implícito. Assinale a alternativa que apresenta o comando que usa cast implícito. Filho objetoFilho = �Filho)objetoPai; Pai objeto = new Filho(); C D E if (c instanceof Alcool) {abastecerAlcool (c);} double[ ] nota = �7, 8, 9, 1, 4, 2�; void parar() {System.out.println(''Parado!'')}; Resposta incorreta Opa! A alternativa correta é a letra B. Confira o gabarito comentado! Gabarito Comentado O comando "Pai objeto = new Filho();" é um exemplo de cast implícito em Java. Neste caso, estamos criando um novo objeto da classe Filho e atribuindo-o a uma referência da classe Pai. Isso é possível porque a classe Filho é uma subclasse da classe Pai, permitindo que um objeto da classe Filho seja referenciado como um objeto da classe Pai. Este é um exemplo clássico de polimorfismo, onde um objeto pode assumir muitas formas. No caso do cast implícito, o tipo de conversão é feito automaticamente pelo compilador Java, sem a necessidade de uma sintaxe explícita para a conversão de tipos.