wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Quiz de Programação Orientada a Objetos

Total questions: 40

Worksheet time: 20mins

Name
Class
Date
1.

Qual é o principal benefício da herança em programação orientada a objetos?

a)

Aumentar a complexidade do código.

b)

Permitir a reutilização de código e modelagem hierárquica de classes.

c)

Reduzir o número de classes em um projeto.

d)

Garantir que todas as classes tenham os mesmos atributos.

2.

O que é polimorfismo em orientação a objetos?

a)

A capacidade de uma classe ter múltiplas formas através da herança múltipla.

b)

A habilidade de métodos com o mesmo nome terem comportamentos diferentes em classes diferentes.

c)

A prática de encapsular dados em uma classe.

d)

O uso de classes abstratas para evitar instâncias diretas.

3.

Qual será a saída ao executar o seguinte código? public class Animal { public void fazerSom() { System.out.println("Som genérico"); } } public class Cachorro extends Animal { @Override public void fazerSom() { System.out.println("Latido"); } } public class Gato extends Animal { @Override public void fazerSom() { System.out.println("Miau"); } } Animal animal1 = new Cachorro(); Animal animal2 = new Gato(); animal1.fazerSom(); animal2.fazerSom();

a)

Som genérico Som genérico

b)

Latido Miau

c)

Som genérico Miau

d)

Latido Som genérico

4.

Qual é o resultado de tentar estender uma classe declarada como final em Java?

a)

A classe filha herda normalmente todos os métodos e atributos.

b)

O compilador gera um erro, pois classes final não podem ser estendidas.

c)

A classe filha só pode acessar métodos final da classe pai.

d)

A classe filha precisa ser declarada como abstract.

5.

Qual das afirmativas é verdadeira sobre classes abstratas e interfaces em Java?

a)

Classes abstratas podem ser instanciadas diretamente.

b)

Interfaces podem ter métodos com implementação padrão desde o Java 8.

c)

Interfaces não podem estender outras interfaces.

d)

Classes abstratas não podem ter atributos.

6.

O que significa sobrescrever (override) um método em uma classe derivada?

a)

Declarar um método com o mesmo nome, mas parâmetros diferentes.

b)

Alterar a implementação de um método herdado mantendo a mesma assinatura.

c)

Declarar um método estático com o mesmo nome.

d)

Ocultar um método da classe pai usando o modificador private.

7.

Em Java, qual é o efeito de declarar um método como final em uma classe não final?

a)

O método não pode ser chamado por subclasses.

b)

O método não pode ser sobrescrito em subclasses.

c)

O método só pode ser chamado dentro do mesmo pacote.

d)

O método se torna estático.

8.

Qual é a palavra-chave usada para invocar o construtor da classe pai em uma classe derivada?

a)

this

b)

super

c)

parent

d)

base

9.

Em UML, qual símbolo representa uma relação de herança entre duas classes?

a)

Linha sólida com triângulo vazio apontando para a classe base.

b)

Linha pontilhada com triângulo cheio apontando para a classe derivada.

c)

Linha sólida com losango cheio.

d)

Linha pontilhada com seta cheia.

10.

Qual coleção é mais apropriada para armazenar elementos únicos e não ordenados?

a)

ArrayList

b)

HashSet

c)

LinkedList

d)

Vector

11.

Considere o seguinte código, qual será a saída? List numeros = Arrays.asList(1, 2, 3, 4, 5); numeros.stream() .filter(n -> n % 2 == 0) .map(n -> n * n) .forEach(System.out::println);

a)

1 4 9 16 25

b)

2 4

c)

4 16

d)

1 3 5

12.

a saída? List numeros = Arrays.asList(1, 2, 3, 4, 5); numeros.stream() .filter(n -> n % 2 == 0) .map(n -> n * n) .forEach(System.out::println);

a)

1 4 9 16 25

b)

2 4

c)

4 16

d)

1 3 5

13.

Qual método da API Streams você usaria para obter o primeiro elemento de um Stream que atende a uma determinada condição?

a)

findAny()

b)

findFirst()

c)

filter()

d)

anyMatch()

14.

O que o método collect(Collectors.toList()) faz em um Stream?

a)

Converte o Stream em uma List.

b)

Filtra os elementos únicos do Stream.

c)

Conta o número de elementos no Stream.

d)

Agrupa os elementos em um Map.

15.

Qual é a principal diferença entre ArrayList e LinkedList em Java?

a)

ArrayList usa uma lista duplamente encadeada; LinkedList usa um array redimensionável.

b)

ArrayList é eficiente para inserções e remoções no meio da lista; LinkedList é eficiente para acessos aleatórios.

c)

ArrayList é baseado em array; LinkedList é baseado em nós encadeados.

d)

Não há diferença; ambos funcionam da mesma forma.

16.

Você precisa armazenar elementos que precisam ser acessados em ordem de prioridade. Qual coleção do Java você usaria?

a)

PriorityQueue

b)

LinkedList

c)

ArrayList

d)

HashSet

17.

Qual método é usado para filtrar elementos em um Stream com base em uma condição booleana?

a)

filter()

b)

map()

c)

sorted()

d)

limit()

18.

Em que situação é apropriado usar uma interface ao invés de uma classe abstrata?

a)

Quando se deseja fornecer implementação parcial de métodos.

b)

Quando é necessário herdar de mais de um tipo.

c)

Quando se quer evitar a implementação de métodos em classes que implementam a interface.

d)

Quando se precisa de construtores comuns.

19.

Qual modificador de acesso permite que somente as subclasses, mesmo em pacotes diferentes, acessem um membro de classe?

a)

private

b)

public

c)

protected

d)

Sem modificador (default)

20.

Qual notação em UML indica uma classe abstrata?

a)

Nome da classe sublinhado.

b)

Nome da classe em itálico.

c)

Nome da classe entre colchetes.

d)

Nome da classe em caixa alta.

21.

Qual coleção você usaria para implementar uma fila (FIFO) simples em Java?

a)

Stack

b)

Queue

c)

Set

d)

Map

22.

Qual é a diferença entre agregação e composição em UML?

a)

Agregação é uma forma forte de composição.

b)

Composição indica que o objeto composto controla o ciclo de vida dos objetos componentes.

c)

Na agregação, os objetos componentes não podem existir sem o objeto composto.

d)

Não há diferença; são termos sinônimos.

23.

Considere o seguinte código, qual será a saída? List palavras = Arrays.asList("java", "stream", "api"); String resultado = palavras.stream() .map(String::toUpperCase) .reduce("", (a, b) -> a + b); System.out.println(resultado);

a)

JAVA STREAM API

b)

JAVASTREAMAPI

c)

java stream api

d)

Não compila devido a erro.

24.

Como paralelizar um Stream para aproveitar múltiplos núcleos do processador?

a)

Usando o método parallelStream().

b)

Adicionando a palavra-chave synchronized.

c)

Usando o método parallel() em um Stream existente.

d)

a) e c) estão corretas.

25.

Qual é a principal vantagem de usar um LinkedHashMap sobre um HashMap?

a)

Melhor desempenho em buscas.

b)

Menor consumo de memória.

c)

Manutenção da ordem de inserção dos elementos.

d)

Permite chaves duplicadas.

26.

O que acontece se você adicionar um elemento duplicado a um Set?

a)

O Set lançará uma exceção.

b)

O Set permitirá o elemento duplicado.

c)

O Set substituirá o elemento existente.

d)

O Set ignorará o elemento duplicado.

27.

Qual método de Streams é usado para transformar elementos de um Stream em outros elementos?

a)

filter()

b)

map()

c)

collect()

d)

reduce()

28.

Qual é o objetivo principal da API Streams em Java?

a)

Fornecer uma maneira de processar dados de forma declarativa e funcional.

b)

Substituir completamente as coleções existentes.

c)

Facilitar operações de entrada/saída (I/O).

d)

Criar interfaces gráficas de usuário.

29.

Qual é a complexidade de tempo para acessar um elemento em um HashMap?

a)

O(1) em média, O(n) no pior caso.

b)

O(log n).

c)

O(n).

d)

O(n log n).

30.

Qual das seguintes opções não é uma interface de coleção em Java?

a)

List

b)

Set

c)

Map

d)

Array

31.

Qual será a saída ao executar o código abaixo? List numeros = Arrays.asList(1, 2, 3, 4, 5); int soma = numeros.stream() .filter(n -> n % 2 != 0) .reduce(0, Integer::sum); System.out.println(soma);

a)

9

b)

10

c)

15

d)

5

32.

Em UML, como representar um método estático em uma classe?

a)

Sublinhando o nome do método.

b)

Usando itálico no nome do método.

c)

Colocando o nome do método entre colchetes.

d)

Usando uma fonte negrito.

33.

Qual coleção em Java deve ser usada para implementar uma pilha (LIFO)?

a)

Stack

b)

Queue

c)

LinkedList

d)

Deque

34.

Qual método da API Streams é usado para coletar os resultados de um Stream em um Map?

a)

collect(Collectors.toMap())

b)

collect(Collectors.groupingBy())

c)

map()

d)

reduce()

35.

Qual é a notação UML para uma associação com multiplicidade "um ou mais"?

a)

0..*

b)

1..*

c)

*

d)

1

36.

Qual é o efeito de declarar uma classe como abstract em Java?

a)

Ela pode ser instanciada diretamente.

b)

Ela não pode conter métodos abstratos.

c)

Ela não pode ser instanciada diretamente.

d)

Ela só pode herdar de uma classe concreta.

37.

Como usar Streams para contar os elementos únicos em uma coleção?

a)

filter().count()

b)

distinct().count()

c)

map().reduce()

d)

sorted().count()

38.

Qual método é usado para reduzir um Stream a um único valor acumulado?

a)

map()

b)

reduce()

c)

collect()

d)

filter()

39.

Qual classe em Java mantém os elementos ordenados pela ordem natural?

a)

HashSet

b)

LinkedHashSet

c)

TreeSet

d)

ArrayList

40.

Qual é a principal vantagem do uso de interfaces funcionais em Streams?

a)

Elas permitem herança múltipla.

b)

Elas tornam o código mais conciso e legível.

c)

Elas substituem completamente as interfaces tradicionais.

d)

Elas não podem ser usadas com lambdas.