Você está na página 1de 75

PROVA DE POO REVISÃO

Analise atentamente cada um dos itens abaixo e marque apenas o que for CORRETO.

Escolha uma ou mais:

a.

Assim como o HashMap, os mapeamentos, HashSet e HashTable permitem o


armazenamento de um conjunto de objetos, cada um com uma chave especifica.

b.

É necessária a reescrita de dois métodos: equals() e hashCode(), caso estes não sejam
implementados adequadamente seu HashMap terá sérios problemas de busca e
organização.

Relacione corretamente a estrutura de dados à sua devida afirmação:

"Não mantém indexação e nem contagem dos elementos


pertencentes. Cada elemento pertence ou não pertence ao
conjunto (não há elementos repetidos)". SET

"Cada elemento de sua lista possui uma chave e valor associado,


assim podemos realizar uma busca rápida pela chave que
desejamos, sem precisar percorrer toda lista ou saber o
índice/posição que desejamos consultar". HashMaP

"É uma excelente alternativa a um array comum, já que temos


todos os benefícios de arrays, sem a necessidade de tomar
cuidado com remoções, falta de espaço etc". ArrayList

"É útil quando listas podem crescer conforme a necessidade de


expansão e quando queremos percorre-las de maneira ordenada
Collections".
Associe corretamente as definições com as estruturas de dados correspondentes.

São coleções que mantêm seus elementos em ordem (também


chamado de sequência), e permitem elementos duplicados. List

Define mapeamentos de chaves para valores. Ele não permite


chaves duplicadas, ou seja, as chaves são únicas e cada chave
identifica no máximo um valor Map

Permite que um grupo de objetos seja tratados como uma unidade,


ou seja, objetos arbitrários podem ser armazenados, recuperados
e manipulados. Collection

Correlaciona as alternativas às estruturas de dados mais adequadas a situação


explanada no item.

Criar um sistema onde deseja realizar buscas rápidas através de escolhas:


um código(chave) de usuário e achar o nome do usuário. Pode Map
haver vários nomes iguais, mas o código é único. ? Set
LinkedList
TreeSet
HashSet

Criação de um sistema onde os usuários cadastrados devem ser


armazenados seguindo um critério de ordenação. TreeSet

Interface que contem a implementação de uma lista encadeada


LinkedList

Interface que representa um conjunto de objetos únicos. Set


No desenvolvimento de uma aplicação JAVA, o desenvolvedor implementou uma
coleção de objetos simples, ou seja, com acessos definidos aos elementos, porém que
não tem mecanismos de retirada de objetos duplicados. Esta coleção é denominada

Escolha uma opção:

a.

Hash.

b.

ArrayList.

c.

StoreList.

d.

Vector.

e.

LinkedList.

O uso de ArrayList, Arrays e Hashs, fazem parte de um mecanismo fundamental para o


reuso de código. Este mecanismo permite que a referência de um ou mais objetos fique
contida no interior de outro objeto. A partir das informações acima, selecione a opção
que indica como é chamado este mecanismo:

Escolha uma opção:

a.

Herança

b.

Agregação

c.

Decomposição

d.
Polimorfismo

e.

Conjunção

Complete os espaços em branco abaixo com o que está faltando para declarar e criar
um ArrayList para tipos BigDecimal:
ArrayList<

BigDecimal
> notas = new

ArrayList
<

BigDecimal

>();

Como é possível saber se o ArrayList, definido acima, está vazio? Responda


completando os espaços em branco a seguir:

notas

isEmpty()
;

escolhas : isNull() ,double , size, notas ,BigDecimal ,isEmpty(), ArrayList ,length ,isFull()

Um programador Java precisa utilizar um array unidimensional dinâmico armazenando


números inteiros e decide importar a classe java.util.ArrayList.

A declaração da referência ao array que ele deverá utilizar é:


Escolha uma opção:

a.

ArrayList<int> arr;

b.

ArrayList<Integer> arr [ ];

c.

ArrayList<int> [ ] arr;

d.

ArrayList<Integer> arr;

e.

ArrayList<int> arr [ ];

Uma lista Java é uma coleção ordenada de elementos do mesmo tipo, conhecida por
sequência. Os elementos de uma lista podem ser acessados pela sua posição, isto é,
seu índice e são derivados da interface

Escolha uma opção:

a.

java.util.LinkedList, que estende a interface Collection.

b.

java.util.Collection, que estende a interface List.

c.

java.util.List, que estende a interface Collection.

Resposta correta. Muito bem.

d.

java.util.Set, que estende a interface Collection.

e.

java.util.ArrayList, que estende a interface List.


Sobre a classe HashMap é CORRETO afirmar que:

Escolha uma opção:

a.

Não permite a entrada de chaves nem valores nulos.

b.

É baseado na propriedade LIFO (último valor inserido é o primeiro a sair).

c.

Permite uma chave nula e qualquer número de valores nulos.

Resposta correta. Muito bem!

d.

É baseado na propriedade FIFO (primeiro valor inserido é o primeiro a sair).

e.

Pode ter chaves iguais, desde que o valor guardado por elas seja diferente.

Analise o seguinte trecho de código abaixo:

import java.util.TreeSet;

public class Exe {

public static void main(String[] args) {

TreeSet<String> treeSet = new TreeSet<String>();

treeSet.add("Maria");
treeSet.add("João");
treeSet.add("Carla"); // Corrigido: adicionada vírgula aqui
treeSet.add("Pedro");
treeSet.add("Isaac");

for(String pessoa : treeSet) {


System.out.println(pessoa);
}
}
}
Marque o item que corresponde a sequencia exata em que os itens do TreeSet são
impressos na linha 13.

Escolha uma opção:

a.

Pedro - Maria - João - Isaac - Carla

b.

Carla - Isaac - João - Maria - Pedro

c.

Maria - Carla - João - Pedro - Isaac

d.

Isaac - Pedro - Maria - João - Carla

Associe corretamente as listas e mapeamentos mais utilizados com as suas principais


características:

Tabelas de pares chave-valor sincronizadas (thread-safe), ou seja,


chamadas concorrentes a um objeto não comprometerão sua
integridade HashTable

Tabelas que possuem uma chave e um valor não sincronizado


HashMap

Arrays dinâmicos sincronizados, ou seja, chamadas concorrentes a


um objeto não comprometerão sua integridade Vector

São arrays dinâmicos (o tamanho pode aumentar ou diminuir)


ArrayList
Marque a opção correta sobre a diferença entre Arrays comum e ArrayLists

Escolha uma opção:

a.

Arrays comuns têm seu tamanho dinâmico, ou seja, pode ser alterado no decorrer da
execução do programa, enquanto ArrayLists têm seu tamanho estático. Arrays podem
armazenar somente valores de tipos primitivos enquanto ArrayLists podem armazenar
tanto objetos quanto valores de tipos primitivos.

b.

Arrays comuns têm seu tamanho estático enquanto ArrayLists têm seu tamanho
dinâmico, ou seja, pode ser alterado no decorrer da execução do programa. Arrays
podem armazenar tanto valores de tipos primitivos quanto objetos enquanto ArrayLists
podem armazenar apenas objetos.

c.

Não há diferença alguma entre Arrays e ArrayLists, pois dentro de ArrayList há um array
que irá armazenar os valores, ou seja, o funcionamento é o mesmo. A única diferença é
que ArrayList fornece métodos para a manipulação e acesso ao array.

d.

Arrays comuns têm seu tamanho estático enquanto ArrayLists têm seu tamanho
dinâmico, ou seja, pode ser alterado no decorrer da execução do programa. Arrays só
podem armazenar valores de tipos primitivos enquanto ArrayLists podem armazenar
tanto objetos quanto valores primitivos.

e.

Arrays comuns têm seu tamanho dinâmico, ou seja, pode ser alterado no decorrer da
execução do programa, enquanto ArrayLists têm seu tamanho estático. Arrays podem
armazenar tanto valores de tipos primitivos quanto objetos enquanto ArrayLists podem
armazenar apenas objetos.

(VUNESP - 2013) Na linguagem de programação Java, a interface Set é utilizada em


coleções que não contêm elementos duplicados. Algumas das classes que
implementam essa interface são:

Escolha uma opção:

a.

ArrayList, HashMap e Stack.


b.

Collection, Iterable e Serializable.

c.

AbstractSet, NavigableSet e SortedSet.

d.

EnumSet, HashSet e TreeSet.

e.

HashSet, TreeSet e SortedSet.

Sobre a estrutura de dados Set é CORRETO afirmar que:

Escolha uma opção:

a.

Possui chaves únicas, cada uma contendo algum valor.

b.

Fornece métodos para iterar sobre qualquer tipo de Collection.

c.

Mantém a ordem em que os objetos são adicionados

d.

É uma Collection que não pode conter elementos duplicados.

e.

Pode conter várias chaves com o mesmo valor.

Marque corretamente a opção que mais se adequa com as diferenças entre listas (List) e
conjuntos (Set).
Escolha uma opção:

a.

Conjuntos contém apenas elementos únicos, ou seja, que não se repetem enquanto
listas podem conter elementos duplicados. Conjuntos são ordenados enquanto listas
são desordenadas. Quando não informado a posição, listas adicionam os elementos em
uma posição aleatória.

b.

Listas contém valores e chaves, que podem ser de qualquer valor, enquanto conjuntos
contém apenas os valores.

c.

Conjuntos contém apenas elementos únicos, ou seja, que não se repetem enquanto
listas podem conter elementos duplicados. Conjuntos são desordenados enquanto listas
são ordenadas. Listas mantém a ordem com que os objetos foram adicionados.

d.

Conjuntos podem conter elementos duplicados, ou seja, que se repetem enquanto listas
podem conter apenas elementos únicos. Conjuntos são desordenados enquanto listas
são ordenadas. Listas mantém a ordem com que os objetos foram adicionados.

e.

Listas contém apenas valores enquanto conjuntos contém valores e sua respectiva
chave, que podem ser de qualquer valor.

Assinale a(s) alternativa(s) verdadeira(s):

Escolha uma ou mais:

a.

Em um conjunto, a ordem em que os elementos são armazenados pode não ser a


ordem na qual eles foram inseridos.

b.

Uma lista é uma coleção que permite elementos duplicados.

c.

'nomeDoArrayList.size' para saber o tamanho da lista.

d.
Em um mapeamento, utilizamos o método 'get(object)' que possui o retorno do tipo
'object'.

e.

Para utilizar um método de ordenação em uma lista, primeiro precisasse sobrescrever o


método equals da classe em questão.

Sobre listas e coleções na linguagem Java, podemos afirmar que:

Escolha uma opção:

a.

TreeMap usa objetos como chaves e é um java.util.Map não ordenado.

b.

Objetos do tipo HashMap podem possuir valores duplicados.

c.

Todas as coleções em Java armazenam elementos de maneira ordenada, mas com


algoritmos diferentes.

d.

A interface java.util.Set é uma subclasse da interface Collection e permite elementos


repetidos.

e.

O método sort(List list) é java.util.Collections é utilizado quando se deseja sorteio


aleatório de um objeto.

“Um aluno de TI deseja criar um sistema onde possa armazenar os PRODUTOS de uma
loja em uma estrutura de dados. O aluno não sabe a quantidade de produtos que devem ser
armazenados por dia e sabe que a quantidade destes produtos varia bastante”. De acordo
com essas informações, qual das seguintes estruturas de dados contidas na API do JAVA
deve ser utilizada pelo aluno?
Escolha uma opção:

a.

Set

b.

ArrayList

c.

HashMap

d.

StoreList

e.

Array

Sobre a estrutura de dados List é correto afirmar que

Escolha uma opção:

a.

É uma coleção indexada de objetos (sequência). Como nos vetores, índices são
baseados em um, isto é, o índice do primeiro elemento é um.

b.

É uma coleção indexada de objetos (sequência). Como nos vetores, índices são
baseados em zero, isto é, o índice do primeiro elemento é zero.

c.

Uma coleção de elementos que modela a abstração matemática para conjuntos. Não
mantém indexação e nem contagem dos elementos pertencentes.

d.

Uma coleção utilizada para manter uma "fila" de elementos. Existe uma ordem linear
para as filas que é a "ordem de chegada".

e.

Uma mapa armazena pares, chave e valor, chamados de itens. As chaves não podem
ser duplicadas e são utilizadas para localizar um dado elementos associado.
É uma coleção de objetos que permite elementos com valores repetidos mas sempre os
mantendo em ordem (apenas uma palavra):

Lista

Sobre Herança é correto afirmar que:

Escolha uma opção:

a.

Aumenta a repetição de código

b.

É sempre necessário reescrever um método herdado de uma superclasse

c.

Uma superclasse pode ter várias subclasses assim como uma subclasse pode ter diversas
subclasses

d.
Uma superclasse só pode ter uma única subclasse
e.
Não existe herança múltipla na OO

Na orientação a objetos, é correto afirmar que:

Escolha uma ou mais:

a.

O polimorfismo é aplicado apenas quando existe a necessidade de implementar métodos


sobrecarregados.

b.
Atributos e métodos podem ser reaproveitados através da herança, quando uma subclasse
herda as características de uma superclasse.

Resposta correta. Muito bem!

c.

O polimorfismo permite que um objeto possa ser instanciado de diferentes maneiras.

Resposta errada.

d.

O polimorfismo é uma técnica que permite um objeto nascer a partir do uso de sobrecarga
de construtores de uma classe.

e.

O conceito de herança estabelece que uma classe possa aproveitar a implementação,


definições dos atributos e métodos de uma classe-base.

Resposta correta. Muito bem!

f.

O polimorfismo obriga que as classes-filhas implementem os métodos e atributos da


classe-pai.

g.

O polimorfismo, associado à herança, permite que métodos definidos em uma classe-pai


sejam reimplementados nas classes-filhas.

Resposta correta. Muito bem!

h.

A herança permite que os membros de uma classe, chamada de classe-pai, possam ser
reaproveitados na definição de outra classe, chamada de classe-filha.

Resposta correta. Muito bem!

i.

O conceito de herança estabelece que uma classe possa aproveitar a implementação,


definições dos atributos e métodos de uma classe-base.

Resposta correta. Muito bem!

j.

A herança e o polimorfismo são complementares, ou seja, devem ser aplicados somente em


conjunto.

k.

Uma das facetas do polimorfismo é a possibilidade de permitir que uma subclasse


reimplementar os métodos herdados de uma superclasse.
l.

A classe-filha tem acesso direto aos métodos e atributos públicos e protegidos da


classe-base.

Resposta correta. Muito bem!

m.

Uma subclasse pode ter acesso aos membros de uma superclasse, independente do
modificador atribuído.

Resposta errada.

n.

A herança permite que uma classe sirva de base para que outras classes possam fazer uso
da especialização.

(TCE-SE) Em POO (Programação Orientada a Objetos), dizer que a classe A estende da


classe B é o mesmo que dizer que:

Escolha uma opção:

a.

As classes A e B são irmãs.

b.

A classe B é derivada de A;

c.

A classe A é superclasse de B;

d.

A classe A é subclasse de B;

A classe A é uma subclasse de B, logo o B é a superclasse de A.

e.

A classe A não é derivada de B;


A respeito do código abaixo a opção correta a se afirmar é:

public class Aluno{

private String nome;

private int matricula;

private int idade;

public Aluno(String nome){

this.nome = nome;

public Aluno(String nome, int matricula){

this(nome);

this.matricula = matricula;

Escolha uma opção:

a.

Houve uma sobrecarga de construtor, podendo assim construir o objeto de formas


diferentes;

Resposta correta. Muito bem!

b.

Ocorrerá erro de compilação, pois o método construtor não pode ser sobrecarregado

c.
O usuário poderá criar um objeto a partir de algum dos dois construtores ou do construtor
padrão(vazio) que já é criado pela linguagem

d.

Todos os atributos da classe têm que ser iniciados no construtor;

e.

Não será possível a instanciação da classe, haverá conflito entre construtores.

(FCM - 2016) Em Java, métodos com o mesmo nome podem ser declarados na mesma
classe, contanto que tenham diferentes conjuntos de parâmetros, isso é chamado
sobrecarga de método. Considere a assinatura do método:

public int testeDeSobrecarga(int i, double d, String s);

O método que pode ser utilizado como sobrecarga do método acima é:

Escolha uma opção:

a.

public String primeiroTesteDeSobrecarga(char c);

b.

public int testeDeSobrecarga(double d, String s);

c.

public int segundoTesteDeSobrecarga(int i, double d);

d.

public void testeSobrecarga (int i);

e.

public int testeDeSobrecarga(int x, double y, String z);

Analise as afirmativas abaixo sobre POO (Programação Orientada a Objetos). Depois


arraste cada uma das palavras para sua posição correspondente.
I. Classe Abstrata não permite a instanciação direta, ainda que tenha vários construtores.
II. Herança Simples ocorre quando uma classe herda características e comportamentos de
apenas uma superclasse.
III. método permite que ocorra a comunicação entre os diversos objetos existentes no
sistema.
IV. Encapsulamento é o mecanismo utilizado para ocultar o acesso direto aos
atributos/comportamentos de um objeto.

(DPE-SP 2013) Um dos artifícios para aumentar a produtividade em programação orientada


a objetos utilizando a plataforma Java é a reutilização de componentes de software em
múltiplos projetos. Um dos artifícios que podem ser utilizados para essa finalidade são as
interfaces. Sobre elas, é correto afirmar:

Escolha uma opção:

a.

Os métodos em tipo interface podem ser públicos ou protegidos.

b.

Todos os métodos em um tipo interface tem um nome, parâmetros, um tipo de retorno e


uma implementação.

c.

É possível "converter" um tipo classe para um tipo interface, desde que a classe implemente
a interface.

d.

Apesar de permitir a reutilização de métodos mudando apenas sua implementação, as


interfaces não podem reduzir a dependência entre classes.

e.

Um tipo interface pode ter apenas campos de instância (atributos) públicos ou protegidos.

Sobre a programação orientada a objetos, é incorreto afirmar que:

Escolha uma opção:


a.

um método abstrato significa que ele deve ser sobreposto.

b.

uma interface comporta-se como uma classe 100% abstrata, não podendo ser instanciada.

c.

as interfaces permitem explorar o polimorfismo.

d.

um método abstrato pode estar presente em uma classe não abstrata, desde que não tenha
corpo.

e.

uma classe abstrata significa que ela deve ser estendida.

f.

é possível combinar métodos abstratos e não abstratos em uma classe abstrata.

No ambiente de programação Java

Escolha uma opção:

a.

a herança múltipla permite que mais classes sejam estendidas.

b.

toda classe é uma subclasse direta ou indireta da classe Object.

c.

uma classe abstrata permite apenas métodos não abstratos.

d.

o corpo de um método abstrato termina com ponto e vírgula e a declaração é delimitada por
chaves.

e.

uma classe abstrata permite apenas métodos abstratos.


Associe as afirmações a seguir com a sua definição correta:

Palavra chave que torna impossível uma classe ser abstract


instanciada

Operação necessária para que uma classe, filha de uma Reescrita


classe abstrata, possa ser concreta

Classe Abstrata
Uma estrutura que deve servir somente de base (modelo) para
outras

É usado para garantir o polimorfismo, fornecendo assinaturas Método abstrato


de operações sem implementação

Sobre o uso de herança em aplicações orientadas a objetos, assinale as alternativas que


justifica o uso de herança.

Escolha uma ou mais:

a.

Funcionário é uma pessoa.

b.

Casa é uma propriedade.

c.

O Palio, da Fiat, é um carro.

d.

Clarice é uma cantora.

e.

Luís é um fazendeiro.
f.

Felinos são seres vivos.

Sobre as variáveis de instância em Java, é CORRETO afirmar que:

Escolha uma opção:

a.

Podem ser acessadas diretamente se forem variáveis globais e tiverem public como
modificador de acesso.

b.

Só podem ser acessadas caso a visibilidade utilizada na especificação dos atributos na


classe tenha sido definida como pública.

c.

Só podem ser acessadas através de métodos especiais (getters e setters),


independentemente do modificador de acesso.

d.

Só podem ser acessadas por meio de uma referência do mesmo tipo ou subtipo da
classe na qual foram declaradas

(MPE- PE 2012 \ ADAPTADA) Sobre a programação orientada a objetos com Java, é


correto afirmar:

Escolha uma opção:

a.

Uma classe pode ter mais de um método com o mesmo nome, desde que este tenha
parâmetros diferentes.

b.

Métodos construtores podem ser acessados depois que o objeto é instanciado

c.

É obrigatório escrever em toda classe um construtor vazio que não recebe parâmetros.
Além desse construtor, pode-se criar outros construtores vazios.
d.

No interior do método main de uma classe, mesmo os métodos públicos e privados de


outra classe só podem ser acessados diretamente por meio de um objeto explicitamente
instanciado dessa classe.

e.

Em uma hierarquia de herança, a superclasse herda todos os métodos públicos,


privados e protegidos das subclasses.

Analise o código abaixo, escrito em Java.

public class Display{

public void imprime(int a){

System.out.print(“Então tirei ”+a+”!”);

public void imprime(String a){

System.out.print(a+“ estudei ”);

public static void main(String[] args){

Display d = new Display();

d.imprime(“Eu”);

d.imprime(10);

}
Qual será o resultado obtido no console ao se executar esse código?

Escolha uma opção:

a.

O código tem um erro de execução, pois a classe tem dois métodos com a mesma
assinatura.

b.

O código tem um erro de compilação.

c.

Eu estudei Então tirei 10!

d.

Então tirei eu! Eu estudei Então tirei 10! 10 estudei

(AOCP 2012) Na linguagem Java, podemos trabalhar com exceções. Sobre esses
conceitos, analise as assertivas e assinale a alternativa que aponta as corretas.

I. As exceções são eventos inesperados que ocorrem durante a execução de um programa.


Uma exceção pode ser o resultado de uma condição de erro ou simplesmente uma entrada
inesperada. De qualquer forma, em linguagens orientadas a objetos como Java, as
exceções são vista como objetos.

II. Em Java, exceções são lançadas por trechos de código que detectam algum tipo de
condições inesperadas. Podem também ser lançadas pelo ambiente de execução Java se
este encontra uma situação imprevista.

III. A sintaxe genérica para um bloco try-catch em Java é a seguinte:


IV. Em Java, podemos capturar uma exceção ocorrida através de trechos de código
capazes de tratá-la.

Escolha uma opção:

a.

Apenas II e III

b.

Apenas I e III

c.

I, II, III e IV

d.

Apenas I, II e III

e.

Apenas I, II e IV

Sobre exceções, é correto afirmar que

Escolha uma opção:

a.
Uma exceção só pode ocorrer uma vez no sistema e depois de ser tratada não ocorrerá
mais.

b.

Uma exceção só é utilizada em sistemas considerados críticos, visto que são os únicos
sistemas que exigem uma maior atenção aos erros que podem ocorrer na execução da
aplicação.

c.

Uma exceção representa uma situação que normalmente não ocorre e representa algo de
estranho ou inesperado no sistema.

d.

Uma exceção é somente utilizada em uma situação em que não há como o problema
ocorrido ser tratado

e.

Uma exceção representa uma situação que normalmente ocorre e representa algo de
normal ou esperado no sistema.

O bloco finally deve ser utilizado quando

Escolha uma opção:

a.

Algo deve ser feito antes do término do bloco try ou de um catch qualquer e que é
imprescindível de ser executado, independentemente do que você queria fazer tenha dado
certo, ou não

b.

Algo que não deve ser feito após o término do bloco try ou de um catch qualquer.

c.

Algo deve ser feito após o término do bloco try ou de um catch qualquer e que é
imprescindível de ser executado, independentemente do que você queria fazer tenha dado
certo, ou não

d.

Algo deve ser feito após o término do bloco try ou de um catch qualquer e que é
imprescindível de ser executado, somente quando nenhuma exceção foi lançada.

e.
Algo deve ser feito após o término do bloco try ou de um catch qualquer e que é
imprescindível de ser executado, somente quando uma exceção seja lançada.

(CESPE - 2015) Considere três classes: Prova, Questão e PerguntaSimples. A classe


Prova tem os atributos Data e Assunto, além do método criar(..). A classe Questão tem
os atributos NúmeroDaQuestão e Pergunta, além do método asssociarÀprova(..). A
classe PerguntaSimples tem os atributos RespostaCerta e Referência, além do método
corrigir(..). De acordo com essa descrição, é possível identificar entre as classes Prova
e Questão e entre as classes Questão e PerguntaSimples, respectivamente, os
seguintes conceitos da orientação a objetos.

Escolha uma opção:

a.

agregação e decomposição

b.

agregação e especialização

c.

classificação e decomposição

d.

herança e especialização

e.

especialização e agregação

Analise cada uma das afirmações abaixo e marque apenas o que for VERDADEIRO:

Escolha uma ou mais:

a.

A herança é um princípio de OO que permite que classes compartilhem atributos e


métodos. Ela é utilizada para reaproveitar código ou especializar operações e atributos.

b.

Ao realizar uma herança, são herdados apenas os atributos públicos (public) da classe
pai?

c.
Uma classe pode acessar diretamente atributos de sua superclasse, mesmo quando
eles são declarados como privados (private).

Analise as afirmações abaixo sobre herança em Java e marque apenas o que for
CORRETO:

Escolha uma ou mais:

a.

Uma subclasse herda todos os membros públicos e protegidos de sua superclasse.

b.

Métodos estáticos não são herdados pelas subclasses, pois pertencem à super classe.

c.

Uma classe em Java não pode estender de mais de uma superclasse.

d.

Os construtores de uma superclasse também são herdados pelas subclasses.

e.

Membros privados são herdados, mesmo que a subclasse não tenha acesso direto.

É uma ocorrência que altera o fluxo do programa. As exceções podem ocorrer por falhas de
hardware, exaustão de recursos e erros.
1. As palavras try e catch servem para informar a JVM o que fazer quando ocorrer uma
exceção.
2. Os blocos catch devem aparecer após o try (isso é um requisito); entre os blocos não
pode haver nenhuma instrução.
3. Quando uma exceção é identificada no bloco try o restante do código não é executado e
não há um retorno para o término do código.

As exceções checked são aquelas no qual você é obrigado a tratá-la. Por outro lado,
quando você tem exceções do tipo unchecked não é obrigatório o tratamento da mesma,
você pode tratar apenas se quiser, se sentir que é necessário para o bom funcionamento da
sua aplicação.
Existem exceções que são verificadas em tempo de execução (unchecked ) e existem
exceções que não são verificadas em tempo de execução, mas sim em tempo de
compilação (checked ).

Com base em seus conhecimentos em Java, selecione a opção INCORRETA sobre


exceções.

Escolha uma opção:

a.

O bloco try tem o código ou o conjunto de instruções que devem ser monitoradas.

b.

O mecanismo que trabalha com exceções em Java utiliza blocos try, catch e finally.

c.

O bloco catch captura as exceções ocorridas no bloco try.

d.

O bloco finally é para ser sempre executado, independente se uma exceção ocorreu ou não
no bloco try.

e.

Mesmo quando uma exceção é lançada, as instruções restantes do bloco try serão
executadas.
O sistema de exceções do Java é uma ferramenta para ajudar os programadores a reportar
e manipular erros. Os erros gerados durante a execução de um programa Java devem ser
controlados com uma estrutura que pode combinar o uso dos blocos

Escolha uma opção:

a.

try e catch.

b.

exception.

c.

if e else.

d.

try e finally.

e.

catch e finally.

As exceções ocorrem quando algo imprevisto acontece, elas podem ser provenientes de
erros de lógica ou acesso a recursos que talvez não estejam disponíveis.

Alguns possíveis motivos para ocorrer uma exceção são:

Escolha uma ou mais:

a.

Tentar utilizar um método ou classe não existentes.

b.

Dividir um número por zero.

c.

Tentar implementar um método que é abstrato na superclasse

d.

Tentar imprimir uma String no console


e.

Tentar acessar um índice do array inexistente

f.

Tentar manipular um objeto que está com o valor nulo.

g.

Tentar concatenar duas Strings

h.

Tentar abrir um arquivo que não existe.

Imagine que você tem um método que possui como parâmetro um array de inteiros, ao
recebe-lo este método vai:

Dividir o primeiro elemento com o elemento imediatamente posterior a ele, o resultado desta
divisão será atribuído a uma variável local do tipo double, o valor desta variável será divido
pelo elemento imediatamente posterior, até o chegar ao ultimo elemento. O resultado é o
valor da variável double no final deste algoritmo.

Exemplo:

(entrada) [ 1, 2, 3] => (1/2)/3 => (saída) 1,66667

Qual(is) a(s) exceção(es) pode(m) ser disparada(s) nesse método?

Escolha uma ou mais:

a.

ArithmeticException.

b.

ArrayIndexOutOfBoundsException.

c.

ClassCastException.

d.

IOException.
e.

ClassNotFoundException.

f.

NumberFormatException.

Analise a frase abaixo:

“Esta palavra-chave é usada para lançar uma exceção dentro de um método. Quando
acionada, a execução do método atual é interrompida e retorna para quem o chamou”

Com base em sua análise e em seu entendimento sobre exceções em Java, qual é a
palavra-chave descrita acima?

Escolha uma opção:

a.

throws

b.

finally

c.

catch

d.

try

e.

throw

Qual a diferença entre as instruções throws e throw?


Escolha uma opção:

a.

● A cláusula throws declara as exceções que podem ser lançadas em determinado


método.
● A cláusula throw cria um novo objeto de exceção que é lançada.

b.

● A cláusula throw declara as exceções que podem ser lançadas em determinado


método.
● A cláusula throws cria um novo objeto de exceção que é lançada.

c.

● A cláusula throws define o tipo de retorno do método.


● A cláusula throw retorna o objeto de exceção

d.

● A cláusula throws indica que o erro acontece fora do controle do programa


● A cláusula throw indica que o erro pode ser evitados se for tratado e analisado pelo
desenvolvedor.

e.

● A cláusula throw indica que o erro acontece fora do controle do programa


● A cláusula throws indica que o erro pode ser evitados se for tratado e analisado pelo
desenvolvedor.

Sobre exceções, associe corretamente os termos com suas definições.

Erros que acontecem fora do controle do programa, mas que devem Checked
ser tratados pelo desenvolvedor para o programa funcionar.

Erros que podem ser evitados se forem tratados e analisados pelo Unchecked
desenvolvedor. Caso haja um tratamento para esse tipo de erro, o
programa acaba parando em tempo de execução.
Usado pela JVM que serve para indicar se existe algum problema Error
de recurso do programa, tornando a execução impossível de
continuar.

A respeito do código abaixo a opção correta a se afirmar é:

public class Aluno{

private String nome;

private int matricula;

private int idade;

public Aluno(String nome){

this.nome = nome;

public Aluno(String nome, int matricula){

this(nome);

this.matricula = matricula;

Escolha uma opção:


a.

O usuário poderá criar um objeto a partir de algum dos dois construtores ou do


construtor padrão(vazio) que já é criado pela linguagem

b.

Ocorrerá erro de compilação, pois o método construtor não pode ser sobrecarregado

c.

Não será possível a instanciação da classe, haverá conflito entre construtores.

d.

Todos os atributos da classe têm que ser iniciados no construtor;

e.

Houve uma sobrecarga de construtor, podendo assim construir o objeto de formas


diferentes;

(FCM - 2016) Em Java, métodos com o mesmo nome podem ser declarados na mesma
classe, contanto que tenham diferentes conjuntos de parâmetros, isso é chamado
sobrecarga de método. Considere a assinatura do método:

public int testeDeSobrecarga(int i, double d, String s);

O método que pode ser utilizado como sobrecarga do método acima é:

Escolha uma opção:

a.

public int segundoTesteDeSobrecarga(int i, double d);

b.

public int testeDeSobrecarga(int x, double y, String z);

c.

public String primeiroTesteDeSobrecarga(char c);

d.
public int testeDeSobrecarga(double d, String s);

e.

public void testeSobrecarga (int i);

Sobre herança, é correto afirmar que:

Escolha uma ou mais:

a.

É a técnica utilizada para esconder uma ideia, ou seja, não expôr detalhes internos para
o usuário, tornando partes do sistema mais independentes possível

b.

O conceito de herança de várias classes é conhecido como herança múltipla.

c.

Uma das grandes desvantagens de usar o recurso da herança é na reutilização do


código.

d.

Ela é usada na intenção de reaproveitar código ou comportamento generalizado ou


especializar operações ou atributos

Analise as duas classes codificadas em java a seguir:


Na classe Fusca temos na linha 4 um comentário, que comando teríamos que inserir
nesta linha para chamar a implementação da superclasse Carro do método liga()?
super.liga();

A respeito do código abaixo a opção correta a se afirmar é:

public class Aluno{

private String nome;

private int matricula;

private int idade;

public Aluno(String nome){

this.nome = nome;

public Aluno(String nome, int matricula){

this(nome);

this.matricula = matricula;

Escolha uma opção:

a.

Não será possível a instanciação da classe, haverá conflito entre construtores.

b.
Houve uma sobrecarga de construtor, podendo assim construir o objeto de formas
diferentes;

c.

Ocorrerá erro de compilação, pois o método construtor não pode ser sobrecarregado

d.

Todos os atributos da classe têm que ser iniciados no construtor;

e.

O usuário poderá criar um objeto a partir de algum dos dois construtores ou do


construtor padrão(vazio) que já é criado pela linguagem

No contexto de Programação Orientada a Objetos, considere as afirmativas abaixo e


marque somente o que for VERDADEIRO.

Escolha uma ou mais:

a.

Herança é uma relação entre objetos.

b.

Classes são apenas agrupamentos de métodos.

c.

Objetos são instâncias de classes.

d.

Ocorre herança múltipla quando existe mais de uma super classe.

e.

Herança é uma relação entre classes.

Na orientação a objetos, a herança permite definir uma classe como uma extensão de
outra classe. As vantagens de utilizar herança são muitas e algumas delas são
apresentadas abaixo. Assinale a afirmativa que NÃO CORRESPONDE UMA
VANTAGEM em relação ao uso de herança.

Escolha uma opção:

a.

Usando a herança, um código existente pode ser reutilizado. Se já existir uma classe
semelhante à que precisamos, é possível reutilizar o código da classe previamente
codificada em vez de implementar tudo novamente.

b.

O uso de herança pode evitar a duplicação de código, pois deixa de ser necessário
escrever duas cópias idênticas ou muito semelhantes de um código em comum.

c.

A herança é uma construção apropriada para casos em que se deseja reutilizar um


código.

d.

O uso de herança múltipla permite que possamos utilizar da caracteristica “Diamante”,


no qual uma subclasse não sabe como se comportar diante de um metodo comum entre
as superclasses.

e.

A manutenção da aplicação fica mais fácil com o uso de herança, pois o relacionamento
entre as classes é mais claramente expresso. Uma alteração em um método
compartilhado entre diferentes tipos de subclasses pode ser feito apenas uma vez

Em POO (Programação Orientada a Objetos), dizer que a classe A é superclasse de B


é o mesmo que dizer que:

Escolha uma opção:

a.

A implementa B;

b.

A estende B;

c.

A é derivada de B;
d.

B é derivada de A;

e.

B implementa A;

A reescrita de métodos é uma das características de qual pilar da OO?

Escolha uma opção:

a.

Encapsulamento

b.

Polimorfismo

c.

Abstração

d.

Herança

Considerando o paradigma da orientação a objetos, a herança é um mecanismo:

Escolha uma opção:

a.

Pelo qual uma classe pode estender outra classe, aproveitando seus métodos e
atributos.

b.

Que representa um conjunto de objetos com características afins.

c.

De chamada a um objeto para invocar um de seus métodos.

d.

Que consiste na separação de aspectos internos e externos de um objeto.

e.
Que representa as características de um objeto, como sua estrutura de dados.

A herança é uma das características mais poderosas e importantes da orientação a


objetos, pois permite o reaproveitamento de atributos e métodos. Sobre o uso de
herança em aplicações orientadas a objetos, é correto afirmar que:

Escolha uma opção:

a.

Cada superclasse deve ter apenas uma subclasse direta.

b.

Através dela, é possível utilizar o mecanismo de polimorfismo.

c.

Somente as superclasses poderão ter métodos sobrecarregados.

d.

Não é possível reescrever em uma subclasse um método de sua superclasse.

e.

Em qualquer linguagem OO é possível implementar herança múltipla.

Analise os seguintes trechos de código:

public interface Automovel{


void liga();
void desliga();
}

public class Carro implements Automovel {


private String marca;
private String cor:
private int ano;

public Carro(){
}

@Override
public void liga() {}
@Override
public void desliga() {}
}

public class Exe {


public static void main(String[] args) {

// TODO Auto-generated method stub


Carro carro = new Carro();
carro.liga();
carro.desliga();
System.out.println(carro.cor +" "+carro.marca);
}

Marque as opções CORRETAS sobre a execução da classe Exe.

Escolha uma ou mais:

a.

Este código apresenta erro de compilação na linha 8.

b.

Os atributos de Carro não possuem métodos para acessá-los, tornando assim os


mesmos encapsulados e não acessíveis a outras classes.

c.

O código não apresenta nenhum erro, e ao executar ele mostra a cor e a marca do
objeto carro.

d.
Apresenta erro de compilação pois os métodos liga e desliga não estão sendo
implementados na classe Carro.

Dado a característica diga se pertence a classe abstrata, concreta ou ambas.

Pode ter métodos abstratos e concretos Abstrata

Não pode ter visibilidade privada em alguns métodos


Abstrata

Pode ter várias instâncias diretas Concreta

Pode ter membros (métodos e atributos)


estáticos:Ambas

Pode não possuir nenhum método abstrato Ambas

Pode possuir atributos, assim como métodos


concretos

Analise as afirmativas abaixo sobre POO (Programação Orientada a Objetos). Depois


arraste cada uma das palavras para sua posição correspondente.
I.

Classe Abstrata
não permite a instanciação direta, ainda que tenha vários construtores.
II.
Herança Simples
ocorre quando uma classe herda características e comportamentos de apenas uma
superclasse.
III.

Método
permite que ocorra a comunicação entre os diversos objetos existentes no sistema.
IV.

Encapsulamento
é o mecanismo utilizado para ocultar o acesso direto aos atributos/comportamentos de
um objeto.

Durante o desenvolvimento de uma aplicação orientada a objetos com Java, um


Técnico criou uma interface para obrigar um conjunto de classes de diferentes origens a
implementar certos métodos de maneiras diferentes, viabilizando a obtenção de
polimorfismo. A interface criada pelo Técnico deve

Escolha uma opção:

a.

Conter variáveis e métodos private.

b.

Possuir métodos abstratos.

c.

Conter métodos implementados.

d.

Ser instanciada diretamente.

e.

Possuir um único construtor vazio.

Na programação orientada a objetos, as classes podem conter, dentre outros


elementos, métodos e atributos. Os métodos
Escolha uma opção:

a.

podem ser sobrescritos em aplicações que possuem relação de herança.

b.

definidos como private só podem ser acessados de classes do mesmo pacote.

c.

não podem ser sobrecarregados em uma mesma classe.

d.

precisam possuir corpo em classes abstratas.

e.

devem receber apenas parâmetros do mesmo tipo.

(TCE-GO - 2014) Em aplicações orientadas a objetos é possível construir diferentes


tipos de classes, como

Escolha uma opção:

a.

superclasses em relações de herança, que podem possuir métodos abstratos, mas não
podem ser instanciadas diretamente.

b.

classes abstratas, que podem possuir construtores e serem instanciadas diretamente.

c.

interfaces, que podem possuir constantes, variáveis e atributos privados.

d.

classes abstratas, que podem conter métodos implementados e assinaturas de métodos


sem implementação.

e.

interfaces, que podem possuir construtores e serem instanciadas diretamente.

A estratégia de usar classes abstratas é ter uma superclasse que dita o comportamento,
enquanto as subclasses concretas têm a liberdade de prover a implementação que
acharem relevantes. Com isso, as classes abstratas são úteis no reuso, incrementando
assim um dos principais principios da OO, conhecido por: polimorfismo

Classes abstratas são feitas para serem modelos para suas classes derivadas. Com
relação a uma classe abstrata é correto afirmar que:

Escolha uma opção:

a.

Seus métodos abstratos só podem ser public.

b.

Não possui atributos estáticos.

c.

Esta só possui métodos e atributos abstratos.

d.

Só pode ser instanciada se o objeto também for abstrato;

e.

Seus métodos abstratos podem ser protected.

A utilização de classes ou métodos abstratos está diretamente relacionada a qual


conceito da OO?

Escolha uma opção:

a.

Encapsulamento

b.

Sobrecarga

c.

Generalização
d.

Comunicação

e.

Polimorfismo

Sobre a programação orientada a objetos, é INCORRETO afirmar que:

Escolha uma opção:

a.

um método abstrato pode estar presente em uma classe não abstrata, desde que não
tenha corpo.

b.

uma interface é uma classe abstrata que não pode ser instanciada.

c.

uma classe abstrata significa que ela deve ser estendida; um método abstrato significa
que ele deve ser sobreposto.

d.

as interfaces permitem explorar o polimorfismo.

e.

é possível combinar métodos abstratos e não abstratos em uma classe abstrata.

(DATAPREV - 2016) Em aplicações orientadas a objetos, uma interface é um tipo especial


de classe que pode conter

Escolha uma opção:

a.
atributos privados.

b.
assinatura de métodos privados ou protegidos.

c.
assinatura de métodos públicos.
d.
construtores.

e.
métodos implementados.

Com relação a classes e métodos abstratos, podemos afirmar que:

Escolha uma ou mais:

a.

Todo método pode ser abstrato

b.

Uma classe que possui algum método abstrato deve ser declarada abstrata

c.

Classes abstratas devem possuir construtor abstrato

d.

A subclasse de uma classe abstrata deve prover a implementação dos métodos


abstratos herdados, do contrário, também será uma classe abstrata

e.

Classes Abstratas podem herdar de classes abstratas e não abstratas

f.

Métodos estáticos podem ser abstratos

g.

Uma classe pode ser declarada abstrata mesmo que não possua métodos abstratos.

h.

Uma classe abstrata não pode ser instanciada

(TRE/PE - 2016) A aplicação do conceito de polimorfismo na orientação a objetos é


realizada de forma objetiva no caso de utilização de
Escolha uma opção:

a.

pacotes e sobrescrita de métodos.

b.

pacotes e interfaces.

c.

classes abstratas e sobrescrita de métodos.

d.

atributos estáticos e classes abstratas.

e.

sobrescrita de método e atributos estáticos.

Complete o sentido da frase abaixo arrastando cada uma das palavras para sua
posição correspondente.
As

classes abstratas
são as que não permitem realizar qualquer tipo de instanciação. Elas são criadas

especialmente para serem modelos para as suas classes derivadas. As classes

derivadas, via de regra, deverão

sobrescrever
os métodos para realizar a implementação dos mesmos. As classes derivadas das

classes abstratas são conhecidas como

classes concretas
.

De acordo com o que você estudou sobre classes abstratas, analise cada um dos itens
abaixo e marque apenas o que for CORRETO.
Escolha uma ou mais:

a.

Se uma classe herda de uma classe abstrata e não implementa os métodos abstratos,
essa classe também deverá ser abstrata.

b.

Em uma classe abstrata, um método estático pode ser abstrato ou não, dependendo da
necessidade do programador.

Item errado.

c.

Uma classe abstrata não pode ser diretamente instanciada. Somente as subclasses
derivadas por herança múltipla, podem ser instanciadas.

Item errado.

Quando se deve utilizar Interfaces?

Escolha uma opção:

a.

Quando quiser definir um comportamento que diversas classes possam ter,


independente de onde essas classes estejam na árvore de herança.

b.

Quando quiser definir um modelo para um grupo de subclasses e tiver pelo menos
algum código de implementação que todas as subclasses possam usar, e para garantir
que ninguém possa criar objetos desse tipo.

c.

Quando sua nova classe não passar no teste É-UM com nenhum outro tipo.

d.

Quando tiver que criar uma versão mais especifica de uma classe e precisar sobrepor
ou adicionar novos comportamentos.
A orientação a objetos é um paradigma de análise, projeto e programação de sistemas
de software baseado na composição e interação entre diversas unidades de software
chamadas de objetos. Na programação orientada a objetos com Java

Escolha uma opção:

a.

um método de uma superclasse não pode ser sobrescrito em uma subclasse, porém,
pode ser sobrecarregado.

b.

uma subclasse em uma relação de herança pode herdar muitas superclasses, o que
caracteriza herança múltipla.

c.

tanto as classes abstratas quanto as interfaces podem ser instanciadas diretamente por
meio da instrução new.

d.

as interfaces podem conter assinaturas de métodos, atributos, constantes e


construtores.

e.

as classes abstratas podem conter assinaturas de métodos, métodos implementados,


constantes, variáveis, construtores e atributos.

Se marcarmos uma classe com

abstract , o

compilador

impedirá que qualquer código, esteja onde estiver, permita que esse

tipo seja

instanciado
, mas você ainda poderá utiliza-lo como uma

referência

. Este modo de programação favorece principalmente na

reutilização de código e no conceito de polimorfismo, através de

subclasses

Analise os seguintes trechos de código abaixo:

public abstract class Animal {


public abstract void come();
public abstract void anda();
}

/*resposta*/ extends Animal {

public void produzSom() {


System.out.println("aaaa");

}
}

De acordo com a descrição da classe Animal, como seria a assinatura da classe


Mamífero(Classe abaixo de Animal) de modo que não ocorra erro de compilação?

OBS: A sua resposta deve conter somente o texto que falta para completar a assinatura
da classe.
Resposta:

Um dos conceitos mais importantes da orientação a objetos é o de interface. Interfaces


podem reduzir o acoplamento entre as classes e tornar o código mais reutilizável. Em
Java, as interfaces

Escolha uma opção:

a.

podem ser instanciadas de outras classes, desde que estejam no mesmo pacote.

b.

condicionar a execução de um comando de atribuição a um operador lógico.

c.

podem ser implementadas apenas por classes que utilizam em sua declaração a
palavra extends.

d.

não podem ter campos de instância, mas permitem a especificação de constantes.

e.

podem ou não fornecer implementação de métodos, apesar de ser mais comum


implementá-los apenas nas classes que as implementam

Selecione a afirmação verdadeira sobre classes abstratas.

Escolha uma opção:

a.

Métodos abstratos podem ser definidos com o modificador final.

b.

Classes abstratas podem ser instanciadas, desde que não tenham métodos abstratos.

c.
Classes abstratas podem ter declarações de métodos construtores.

d.

Para uma classe ser abstrata, ela deve ter apenas métodos abstratos.

e.

É possível declarar métodos estáticos como abstratos.

Marque a alternativa incorreta sobre interfaces:

Escolha uma opção:

a.

Se uma classe implementar uma interface e não prover implementações para os


métodos da interface, um erro de compilação será gerado.

b.

Não existe herança múltipla em java, mas em contrapartida, uma classe pode
implementar várias interfaces.

c.

O uso de interfaces são uma boa prática quando se precisa aplicar o polimorfismo em
diferentes classes.

d.

Uma classe concreta pode implementar e/ou estender uma interface

e.

Interfaces podem possuir atributos constantes.

Com base em seus conhecimentos em Java, selecione a opção incorreta sobre


interfaces e classes abstratas.
Escolha uma opção:

a.

Uma classe pode implementar mais e uma interface.

b.

Interfaces só podem ter métodos públicos.

c.

Uma interface pode estender de mais de uma interface.

d.

Assim como classes abstratas, interfaces podem ter construtores.

e.

Uma interface não pode estender de uma classe abstrata.

Analise as afirmações abaixo sobre interfaces e marque apenas o que for


VERDADEIRO:

Escolha uma ou mais:

a.

Uma interface não pode herdar de uma classe, mesmo que ela seja inteiramente
abstrata.

b.

Todos os membros de uma interface tem por padrão o modificador de acesso public.

c.

Todas as operações de uma interface são static e final por padrão.

d.

Assim como classes abstratas, interfaces podem ter declaração de construtores.

e.

Todos os atributos de uma interface são static e final por padrão.


Um sistema deverá ser executado no escritório central da empresa de turismo,
assim como no conjunto de escritórios de agentes de viagens, de tal forma que
possam ser efetuadas reservas em passeios de ônibus operados pela empresa. O
sistema permitirá que um operador configure os detalhes das rotas dos passeios,
tais como número, nome e uma breve descrição. Os passeios serão categorizados
como visões cênicas, paradas sociais, compras artesanais e visitas a sítios
históricos. Cada passeio pode incluir o denominado trips, que consiste em um dia
de passeio em ônibus privativo com um número especifico de lugares. Essa
informação também necessita ser configurada pelo operador. Os agentes de
viagem serão capazes de fazer e armazenar informações de reservas nos trips
para os clientes.

Com relação à essa situação hipotética, assinale a opção INCORRETA, acerca dos
objetos e dos métodos que podem ser usados na implementação do sistema
mencionado.

Escolha uma opção:

a.

O escritório central, as rotas dos passeios e os passeios são objetos que podem ser
definidos no sistema.

b.

O número, o nome e a descrição do passeio podem ser considerados como atributos de


objetos do sistema.

c.

O ônibus e os clientes são objetos que podem ser considerados na descrição do


sistema.

d.

O armazenamento é um método associado às reservas.

e.

As reservas em passeios e a configuração de detalhes das rotas são métodos que


podem ser definidos no sistema.

Um dono de uma fábrica de brinquedos solicitou que seus engenheiros criassem um


mesmo controle remoto para os brinquedos avião, carro e barco. A única restrição era
que cada brinquedo atendesse aos comandos específicos definidos pelo controle. O
controle remoto teria vários botões, sendo que todos eles seriam úteis para todos os
brinquedos. Por exemplo, quando o usuário apertasse o botão mover, o controle
enviaria o sinal MOVER para todos os brinquedos que estivessem em um raio de 2
metros. Desta forma, quando o brinquedo recebesse o sinal MOVER, ele se moveria de
acordo com a sua função. Para o avião, mover significa VOAR, para o barco significa
NAVEGAR e, para o automóvel, significa CORRER. Observe que os brinquedos
respondem ao mesmo sinal de formas diferentes.

Na programação orientada a objetos, este exemplo ilustra um caso de

Escolha uma opção:

a.

Polimorfismo.

b.

Hierarquia de herança.

c.

Herança.

d.

Sobrecarga de métodos.

e.

Classe abstrata.

Interface é um recurso da orientação a objeto utilizado em Java que define ações que

devem ser obrigatoriamente executadas, mas que cada

classe

pode executar de forma

diferente

. Interfaces contém valores constantes ou

assinatura de métodos

que

devem
ser implementados dentro de uma classe.

Com base em seus conhecimentos em Java, selecione a opção incorreta sobre


métodos e classes abstratas.

Escolha uma opção:

a.

Uma classe pode ser definida como abstrata mesmo que não tenha nenhum método
abstrato.

b.

Classes abstratas podem ter declaração de construtores.

c.

Métodos estáticos não podem ser abstratos.

d.

Podemos declarar métodos abstratos como private.

Muito bem!

e.

Classes abstratas podem herdar de classes concretas.

(CGU - 2008) Com relação aos conceitos de programação orientada a objetos, é correto
afirmar que:

Escolha uma opção:

a.

Métodos estáticos são aqueles que, ao serem executados, não acessam atributos de
instância da classe.

b.
Métodos finais, também conhecidos como finalizadores ou destrutores, são chamados
na destruição de uma instância.

c.

Métodos abstratos são aqueles que não devem ser redefinidos em classes derivadas,
devem ser herdados tal como foram definidos.

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 afetam objetos individuais
da classe.

Uma diferença entre classe e interface é que a classe

Escolha uma opção:

a.

pode ser implementada em uma interface, enquanto a interface não pode ser
implementada em uma classe.

b.

declara e implementa seus métodos, enquanto a interface apenas declara.

c.

é usada apenas em aplicações web, enquanto a interface é usada apenas em


aplicativos dedicados.

d.

pode ter um campo de dados, enquanto a interface não.

e.

é catalogada em pacotes, enquanto a interface não.


Assinale a(s) alternativa(s) verdadeira(s):

Escolha uma ou mais:

a.

Uma classe abstrata pode ser subclasse de outra classe abstrata.

b.

Uma classe abstract final é útil em sistemas complexos.

c.

As classes com um método abstrato não pode ser instanciadas.

d.

Subclasses de uma classe abstrata também não podem ser instanciadas.

(IADES - 2017) Considerando que Luta e Jogo são classes, e que Esporte, Individual e
Coletivo são interfaces, com relação aos conceitos de classes e interfaces da linguagem
Java, assinale a alternativa CORRETA.

Escolha uma opção:

a.

interface Futebol implements Esporte, Jogo{}

b.

interface Futebol extends Esporte, Coletivo{}

Resposta correta. Muito bem!

c.

interface Futebol implements Esporte{}

d.

class Judo extends Esporte, Individual{}

e.

interface Karate extends Luta{}


Sobre Interfaces, assinale a(s) alternativa(s) verdadeira(s):

Escolha uma ou mais:

a.

A Interface funciona igual uma classe abstrata, entretanto, na interface, só podem


conter a assinatura dos métodos.

b.

A Interface definirá o estado do objeto.

c.

Interfaces, conceitualmente, só possuem operações (assinaturas de métodos).

d.

Interfaces pode ser estendida de uma ou mais Interfaces.

e.

As classes podem estender uma ou mais Interfaces.

"Uma classe abstrata define uma interface comum às suas subclasses. Interagir com
objetos via interfaces definidas em classes abstratas possibilita que os clientes dos
serviços providos pelos objetos não precisem conhecer as classes desses objetos, mas
os clientes precisam conhecer as classes abstratas que definem as interfaces"

Acerca de classes abstratas, podemos concluir que a afirmativa acima é:

Escolha uma opção:

Verdadeiro
Falso

Dado as características abaixo, diga se pertence a classe abstrata, interface ou ambas.

Possui somente métodos public e abstratos.


interface
Tem somente métodos abstratos. interface

Possui métodos sem implementação. Ambos

Pode implementar interfaces. classe abstrata

Pode ser declarado variáveis. classe abstrata

Pode possuir membros estáticos. Ambos

(MPE-CE 2013) Em uma aplicação desenvolvida por uma equipe de TI deseja-se:

Caso 1: obrigar um conjunto de classes a implementar um conjunto de métodos para se


obter um padrão. A ideia é centralizar um conjunto de assinaturas de métodos em um
componente para que um conjunto de classes possa implementá-los da maneira como
lhes convier.

Caso 2: centralizar os atributos e métodos comuns a um conjunto de classes em uma


única classe, de forma que esse conjunto de classes especializadas se comporte como
se tivessem em seu código fonte esses atributos e métodos comuns.

Os principais conceitos da orientação a objetos que devem ser utilizados para atender
os Casos 1 e 2 são, respectivamente,

Escolha uma opção:

a.

sobrecarga de métodos e sobrescrita de métodos.

b.

interface e herança.
c.

encapsulamento e herança.

d.

pacote e generalização.

e.

generalização e especialização.

"Os

erros

em Java são um tipo de

exceção
que representam problemas na

máquina virtual

e não devem ser tratados em 99% dos casos, já que, provavelmente, o melhor a se
fazer é deixar a JVM encerrar (ou apenas a Thread em questão)."

Correlacione corretamente as afirmações com as classes de exceção que se tratam:

Exceção lançada quando é acessado uma


posição inexistente em um vetor.
ArrayIndexOutOfBoundsException
Exceção lançada quando é acessado uma
referência nula. NullPointerException

Exceção lançada quando é feito um casting


sobre duas classes que não são da mesma
hierarquia . CastClassException

Exceção lançada a tentar acessar um


arquivo que contem um caminho inválido.
IOException

É uma ocorrência que altera o fluxo do programa. As exceções podem ocorrer por
falhas de hardware, exaustão de recursos e erros.

Os

em branco

devem aparecer após o try (isso é um requisito); entre os blocos

em branco

haver nenhuma instrução.

opções : é, checked ,blocos catch, tryed ,finally, default ,erros ,pode, cacth ,não pode
exceções
(IESES 2015) Sobre o tratamento de exceções na linguagem Java é corretor afirmar:

Escolha uma opção:

a.

Os termos try e finally são obrigatórios.

b.

O bloco catch só pode ser utilizado uma única vez.

c.

É obrigatória a inserção do bloco finally.

d.

O bloco finally é sempre executado.

Analise o seguinte trecho de código abaixo:

Marque a opção correta que diz sobre qual/quais exceção/exceções pode/podem


ocorrer ao executar o código acima.

Escolha uma opção:

a.

ArithmeticException e ArrayIndexOutOfBoundsException

b.
ArrayIndexOutOfBoundsException
c.

Não ocorre nenhuma exceção. , não é esse int

d.
NullPointerException

e.
ArrayIndexOutOfBoundsException e NullPointerException , não é esse

"Exceção é um evento que acontece durante a compilação de um programa


corrompendo o curso normal do seu fluxo lógico. Em Java exceções são representadas
por uma hierarquia particular de objetos. A classe raiz que representa uma exceção é
Throwable."

Escolha uma opção:

Verdadeiro

Falso

O tratamento de exceções permite ao desenvolvedor gerenciar os erros durante a


execução de um programa de forma organizada.
O seguinte bloco exemplifica o tratamento de exceções em uma linguagem orientada a
objetos:
Considere que o método print exibe a mensagem passada como parâmetro na tela, que
o método CopyFiles realiza operação de cópia de todos os arquivos do diretório
passado por parâmetro e que a classe IOException herda de Exception.

Utilizando o código apresentado e seu conhecimento sobre tratamento de exceções, a


alternativa correta é:

Escolha uma opção:

a.

é preciso existir algum bloco catch compatível com a exceção que foi disparada para
que o devido tratamento seja realizado;

b.

a mensagem do bloco catch (IOException ioException) será executada quando ocorrer


um erro na Entrada ou Saída de Dados;

c.

o bloco finally garante execução antes do bloco try;

d.

a mensagem do bloco finally só não será mostrada quando houver exceção.

e.
qualquer exceção precisa ser pega por um comando finally;

Sobre exceções marque a/as alternativa/as incorreta/as.

Escolha uma ou mais:

a.

Da mesma forma que "return", "throw" retorna imediatamente do método.

b.

As exceções são identificadas pela palavra chave throw (são as exceções que o método
pode lançar).Já o identificador throws faz o método lançar a exceção.

c.

Os métodos, exceto o construtor, podem lançar exceções

d.

throws declara que o método pode provocar exceções de um tipo especifico declarado
(não vai abranger os subtipos);

e.

A captura de exceções é feita com um bloco try-catch,

As exceções checked são aquelas no qual você é obrigado a tratá-la. Por outro lado,
quando você tem exceções do tipo unchecked não é obrigatório o tratamento da
mesma, você pode tratar apenas se quiser, se sentir que é necessário para o bom
funcionamento da sua aplicação.
Existem exceções que são verificadas em tempo de execução (unchecked ) e existem
exceções que não são verificadas em tempo de execução, mas sim em tempo de
compilação (checked )
Assinale a(s) alternativa(s) verdadeira(s):

Escolha uma ou mais:

a.

Uma boa pratica de programação é utilizar exceções já existentes no Java.

b.

É imprescindível utilizar tratamento de exceções quando o usuário precisa tomar uma


decisão quanto aquele erro.

c.

Uma boa pratica de programação é utilizar a classe Exception dentro do catch.

d.

Uma classe de exceção deve sempre implementar a classe Exception.

e.

Uma boa pratica de programação é utilizar a classe Exception no throws.

Baseado nos seus conhecimentos em exceções, complete corretamente o trecho


abaixo:
"Um bloco try é chamado de bloco “protegido” porque, caso ocorra algum problema
com os comandos dentro do bloco, a execução desviará para os blocos catch
correspondentes. Quando usamos um bloco finally indicamos que este determinado
trecho deverá sempre ser executado mesmo que haja a exceção".

Basicamente podem existir dois tipos de exceções, as checked e unchecked.


Analisando os itens abaixo, selecione a alternativa que indica corretamente a definição
desses tipo.

Escolha uma opção:

a.

As exceções Unchecked são inseridas automaticamente pela linguagem.

As exceções Checked devem ser criadas pelo programador.


b.

As exceções Checked não são obrigatórias o seu tratamento, você pode tratar apenas
se quiser, se sentir que é necessário para o bom funcionamento da sua aplicação

As exceções Unchecked são aquelas no qual você é obrigado a tratá-la, seja com um
bloco try-catch ou mesmo com um throws.

c.

As exceções Checked são aquelas no qual você é obrigado a tratá-la, seja com um
bloco try-catch ou mesmo com um throws.

As exceções Unchecked não são obrigatórias o seu tratamento, você pode tratar
apenas se quiser, se sentir que é necessário para o bom funcionamento da sua
aplicação

d.

As exceções Checked são inseridas automaticamente pela linguagem.

As exceções Unchecked devem ser criadas pelo programador.

e.

As exceções Checked são utilizadas para erros irrecuperáveis.

As exceções Unchecked são utilizadas para erros recuperáveis

Marque a alternativa que diz respeito sobre as principais diferenças entre os métodos
dispose() e setVisible() em uma Shell em SWT.

Escolha uma opção:

a.

setVisible() fecha a Shell e libera os recursos, já o dispose() esconde a Shell e libera os


recursos da mesma.

b.
dispose() fecha a Shell e desaloca os recursos da mesma na memória, já setVisible()
apenas esconde ou deixa a janela visível, sendo que quando esconde a janela
permanece aberta, mas não visível ao usuário.

c.

dispose() serve para que uma Shell vá para o plano de fundo, e setVisible() é para
alterar a visibilidade de uma Shell.

d.

setVisible(true) esconde a Shell, mas a mesma continua aberta e alocada na memória,


enquanto dispose() fecha a Shell e desaloca os recursos da mesma da memória.

Relacione os itens corretamente.

escolhas :
Usado para descrição simples (sem cor, fontes especiais ou
Rótulo
estilos) de texto ou uma pequena imagem chamada de ícone.
Display
Rótulo Shell

Janela onde o aplicativo é gerenciado pelo gerenciador de janelas


do sistema operacional. Shell

Responsável pela gestão, “loops” e eventos, controlando a


comunicação entre o segmento de interface do usuário e outros
segmentos, como fontes e cores. Display

Representam os componentes que podem ter outros componentes adicionados a elas,


como janelas, árvores, “split panes” e diálogos.

Escolha uma opção:


a.

Layouts.

b.

Forms API.

c.

Buttons

d.

Composites.

e.

System.

f.

JFace.

Dado a tela abaixo feito em SWT nomeie os componentes que estão faltando nas linhas
1 , 2, 3,4
opções : Grid,Button ,Layout ,Event, Display ,Text ,Shell ,Label ,Composite

Com relação aos gerenciadores de layout, relacione os itens:

Mostra os widgets seguidos ou linhas, com opções de


preenchimento e espaçamento. Row Layout

Organiza os componentes gráficos em uma única linha ou coluna,


e todos com o mesmo tamanho. Fill Layout

Define os widgets em uma grade. Grid Layout


Criado com o objetivo de organizar mais facilmente as interfaces para o usuário, o Radio
Button apresenta uma estrutura visual simplificada para mostrar as opções. Ele cria um
conjunto de linhas que fica ao redor dos componentes e com um título na parte superior.

Relacione os itens corretamente.

As instâncias desta classe são objetos de interface de usuário


selecionáveis que permitem ao usuário inserir e modificar texto.

Text

As instâncias desta classe são usadas para informar ou alertar o


usuário. MessageBox

As instâncias desta classe são objetos de interface de usuário


selecionável que representa um botão em uma barra de
ferramentas. Tool Item
Relacione os itens corretamente com as respostas sobre SWT.

Classe que representa uma janela em SWT. Shell

dispose()
Método que fecha a janela(literalmente) e desaloca os
recursos da mesma da memória.

setVisible(false)
Método que esconde a shell da tela do usuário, mas não a
fecha.

Componente gráfico que agrupa vários RadioButtom e os RadioGroup


gerencia.

Você também pode gostar