Java SE TRE/MT – Operação (CESPE 2010) (adaptada) 1 JVM é um tipo de linguagem de máquina, resultado da compilação do código-fonte Java, que é interpretado e executado pela máquina virtual Java. 2 A linguagem Java não prevê soluções para o problema de vazamento de memória — memory leak —, razão por que é necessário liberar objetos que não estejam mais em uso. 3 Na linguagem Java, tanto a sobrecarga, ou overload, quanto a sobrescrita, ou override, permitem que objetos instâncias que sejam de uma mesma classe tenham métodos com assinatura diferente TRE/MT - Análise (CESPE 2010) 34 A respeito dos conceitos de programação orientada a objetos e da linguagem de programação Java, assinale a opção correta. A) Na linguagem Java, a definição de classes em que a declaração de todas as suas variáveis seja private é uma forma de se obter uma implementação coesa. B) Na linguagem Java, é possível haver polimorfismo por meio da implementação de herança entre classes. C) Em uma hierarquia de classes na linguagem Java, uma subclasse sobrescreve qualquer método da sua superclasse. D) Na linguagem Java, os métodos de uma classe que tenham acesso padrão são usados em qualquer outra classe. E) Na linguagem Java, métodos abstract de classes abstract não têm implementação definida. As subclasses dessa classe abstrata definem implementação para tais métodos. TRE/BA – Programação (CESPE 2010) Considerando o código apresentado acima, escrito em Java, julgue os itens que se seguem. Professor Fernando Pedrosa – [email protected] 41 Em Java, todo método construtor deve ter o mesmo nome da classe, a exemplo do método public Questão(), no código apresentado. 42 O método main será chamado quando o código mostrado for executado. 43 Ao se compilar o código em questão, será gerado um arquivo de nome Questão.jvm, no formato bytecode. 44 Ao se executar esse código, o bloco referente à repetição for será executado 10 vezes. 45 Nesse código, a instrução condicional if será verdadeira quando a variável contador for igual a 6. 58 Em programação orientada a objetos, o pacote tem como função agrupar classes dentro de um grupo. Em Java, o pacote Swing (javax.swing) é composto de várias classes para a implementação de interfaces gráficas em desktop. BASA - Arquitetura (CESPE 2010) 110 Na linguagem Java, se uma classe tem uma variável declarada com a palavra-chave final, significa que qualquer subclasse dessa classe estará impedida de alterar o valor dessa variável. 111 Ao final da execução do trecho de código abaixo, escrito na linguagem Java, será exibido o valor 21. 112 Na definição de funções ou procedimentos, a passagem de parâmetros pode ser feita por valor ou por referência. Na primeira forma, o argumento passado para a função ou o procedimento necessariamente manterá o seu valor depois que essa função (ou esse procedimento) terminarem a execução, enquanto na passagem por referência não existe essa garantia. 113 A herança é um conceito implementado por todas as linguagens de programação orientadas a objeto. No entanto, algumas delas somente permitem o uso de herança simples, não sendo possível a criação de classes por meio de herança múltipla. Professor Fernando Pedrosa – [email protected] TRE/PR (CESPE 2009) Um programa é um conjunto de instruções escrito em determinada linguagem que diz ao computador o que deve ser feito. Existem muitas formas e diferentes tipos de linguagens de programação, cada qual com uma finalidade específica. A respeito da linguagem Java, julgue os itens de 61 a 65. 61 Um nome de método é sobreposto se uma classe possuir mais de um método com o mesmo nome (diferentes tipos de parâmetros). 62 Os atributos definidos com o especificador private na superclasse indicam que esse atributo não é herdado pela subclasse. 63 Há duas maneiras de passar argumentos em chamadas de métodos: por valor (os tipos primitivos); e por referência (os objetos). 65 Um método declarado como static não pode acessar membros não static da classe. DETRAN (CESPE 2009) Com relação à programação Java, julgue os próximos itens. 76 Por meio do tipo de dados float, é possível representar números em notação de ponto flutuante normalizada em precisão simples de 32 bits. 77 Ao se declarar uma nova classe, é possível especificar um dos seguintes modificadores: public, friendly, final, abstract. Uma classe abstract pode ser instanciada e derivada. 78 A implementação de herança múltipla em Java não é possível. 79 Os moderadores de acesso são empregados para restringir o acesso a um método. Em Java, há os moderadores public, protected, package, friendly, private e private protected. No moderador private, o método é privativo da classe que o contém, sendo seu uso permitido apenas dentro de um mesmo arquivo-fonte, e vedado a qualquer outra classe. 80 Ao se declarar os construtores como públicos, se eles tiverem um nível de acesso inferior ao da classe propriamente dita, outra classe será capaz de declarar uma instância dessa classe, mas não será capaz de realizar ela mesma a instanciação. Se declarados como privativos, outras classes poderão utilizar métodos dinâmicos, não sendo permitido que elas criem instâncias dessa classe. ANAC (CESPE 2009) Com relação aos conceitos de programação orientada a objetos e sua implementação na linguagem Java, julgue os próximos itens. 48 Na programação orientada a objetos, o conceito de herança pode ser utilizado mediante a criação de subclasses a partir de classes anteriormente criadas. Em Java, as subclasses herdam as variáveis de instância e os métodos de instância da superclasse, podendo ter acesso a todos os membros private e protected da referida superclasse. Professor Fernando Pedrosa – [email protected] 49 Pelo uso de polimorfismo, uma chamada de método pode fazer que diferentes ações ocorram, dependendo do tipo do objeto que recebe a chamada. 50 Em Java, se uma subclasse é derivada de uma superclasse com um método abstract sem fornecer uma definição para esse método abstract na subclasse, esse método permanece abstract e os objetos instanciados a partir dessa subclasse não poderão utilizar o método abstract. TST (CESPE 2008) 57 Um ponteiro é um tipo de objeto destinado a armazenar dados cujos valores devem ser calculados a partir de posições predefinidas na memória. 58 Os tipos de dados primitivos da linguagem Java são caracterizados por terem um tamanho específico, que depende da implementação local do interpretador. 59 Na linguagem Java, se a definição de uma classe não utiliza explicitamente a palavra-chave extends, ela estende implicitamente a classe Object. 60 Uma das conseqüências do polimorfismo é que objetos de classes diferentes podem receber mensagens idênticas para ativar operações das respectivas classes, embora o processamento real a ser realizado seja diferente em cada classe. 61 A sobreposição (overriding) é a funcionalidade pela qual duas instâncias de uma classe podem compartilhar, no todo ou em parte, determinada área da memória. 62 Uma das conseqüências do encapsulamento de dados e funções em uma classe é a interdição de reutilização do código dessa classe em subclasses. 63 O envio de uma mensagem permite a um objeto solicitar a outro objeto o acionamento de uma operação da classe deste último, sem que o primeiro tenha conhecimento do modo específico de implementação dessa operação. STJ (CESPE 2008) Considerando o trecho de código acima, escrito em Java, julgue os itens seguintes. 76 O trecho de código acima ilustra um exemplo de como fazer manipulação de dados com matrizes. Professor Fernando Pedrosa – [email protected] 77 A classe ArrayCopy é pública, apesar de definir System.out.printf, que é um método privado. 78 A instrução copy[0] = "A"; cria um objeto cujo conteúdo é cópia do conteúdo da string "A" e insere este objeto na última posição de uma cadeia de strings. 79 A instrução System.out.println("Before(copy) \t\t" +Arrays.toString(copy) + "\n"); está sintaticamente correta em Java. 80 A instrução Import java.util.Arrays está sintaticamente errada porque precisa terminar com ponto-e-vírgula no final da sentença. ANA (ESAF 2009) 28- Os argumentos são passados para métodos, em Java, por a) valor, sejam valores primitivos ou referências a objetos. b) referência, sejam valores primitivos ou referências a objetos. c) valor, apenas para valores primitivos. d) referência, apenas para referências a objetos. e) valor ou referência, de acordo com o sistema operacional. 29- Em Java, para que um método de uma superclasse não seja sobrescrito em suas subclasses, aplica-se o modificador a) static. b) public. c) final. d) protected. e) abstract STN (ESAF 2008) 21- O que fazer para forçar a coleta de lixo de um objeto, em Java? Indique a opção correta. a) Invocar finalize(). b) Remover todas as referências ao objeto. c) Invocar Runtime.gc(). d) Invocar System.gc(). e) A coleta de lixo não pode ser forçada. CGU (ESAF 2008) 21- Com relação aos conceitos de programação orientada a objetos, é correto afirmar que a) métodos abstratos são aqueles que não devem ser redefinidos em classes derivadas, devem ser herdados tal como foram definidos. b) métodos estáticos são aqueles que, ao serem executados, não acessam atributos de instância da classe. Professor Fernando Pedrosa – [email protected] c) métodos finais, também conhecidos como finalizadores ou destrutores, são chamados na destruição de uma instância. d) métodos construtores são métodos chamados sobre um objeto quando ele é criado. Em Java, os construtores têm o mesmo nome da classe da qual são membros e o tipo retornado por eles é especificado na sua definição. e) métodos de classe são aqueles que executam operações que executam operações que afetam objetos individuais da classe. 23- Com relação à linguagem de programação Java, é correto afirmar que a) o operador instanceof é utilizado para chamar o método construtor de uma classe e criar um novo objeto. b) são tipos primitivos de dados: boolean, byte, short, char, int, long, string, float e double. c) o tipo de dado int suporta apenas números de - 32.768 a 32.767. d) a instrução do-while não faz parte das instruções de controle de fluxo da linguagem. e) os valores booleanos não podem ser usados em uma operação de casting. 25- Na linguagem de programação Java, pode-se definir a visibilidade dos métodos e atributos. Com relação a essa característica, é correto afirmar que a) métodos declarados como public em uma superclasse, quando herdados, precisam ser protected em todas as subclasses dessa classe. b) métodos declarados como protected em uma superclasse, quando herdados, precisam ser protected ou public nas subclasses dessa classe. c) o nível de acesso protected é mais restritivo do que o nível de acesso default. d) métodos declarados como public só podem ser acessados a partir dos métodos da própria classe ou de classes derivadas. e) métodos declarados como default só podem ser acessados Professor Fernando Pedrosa – [email protected] Gabaritos TRE/MT – Operação (CESPE 2010) 1 E, 2 E, 3 E TRE/MT – Análise (CESPE 2010) 34 B TRE/BA – Programação (CESPE 2010) 41 C, 42 C, 43 E, 44 C, 45 E, 58 C BASA - Arquitetura (CESPE 2010) 110 E, 111 E, 112 C, 113 C TRE/PR – Análise (CESPE 2009) 61 E, 62 E, 63 E, 65 C DETRAN (CESPE 2009) 76 C, 77 E, 78 C, 79 E, 80 E ANAC (CESPE 2009) 48 E, 49 C, 50 E TST (CESPE 2008) 57 E, 58 E, 59 C, 60 C, 61 E, 62 E, 63 C STJ (CESPE 2008) 76 C, 77 E, 78 E, 79 C, 80 C ANA (ESAF 2009) 28 A, 29 C STN (ESAF 2008) 21 E CGU (ESAF 2008) 21 B, 23 E, 25 B Professor Fernando Pedrosa – [email protected]