Quiz sobre POO(Java)

Quiz sobre POO(Java)

Algumas perguntas para reforçar a compreensão do assunto de POO

Imagem de perfil user: Bionicom
Bionicom
1

O que é uma classe em POO?

Uma estrutura para armazenar listas em JavaScript
Uma interface entre o usuário e o sistema
Uma função que realiza operações matemáticas
Um conjunto de dados e métodos encapsulados
Um tipo de banco de dados relacional
2

Qual a principal finalidade do construtor em uma classe?

Criar métodos sobrecarregados
Inicializar atributos de um objeto
Criar atributos estáticos
Alterar métodos de classes herdadas
Remover objetos da memória
3

O que é um objeto em POO?

Uma função encapsulada
Um módulo externo importado
Um tipo de dado primitivo
Uma variável global de um programa
Uma instância de uma classe
4

Em POO, o que significa encapsulamento?

Dividir uma classe em partes menores
Restringir o acesso direto aos atributos e métodos
Permitir herança múltipla
Criar novos métodos dentro de uma classe
Armazenar dados em arrays multidimensionais
5

O que define polimorfismo em Java?

Todos os métodos serem públicos
A utilização de construtores com múltiplos parâmetros
Criar objetos de várias classes em um único programa
Atribuir múltiplas classes a um único objeto
Capacidade de uma classe derivada sobrescrever métodos da classe base
6

Qual das opções é um exemplo de sobrecarga de métodos?

Criar um método com o mesmo nome em classes diferentes
Criar um método que não retorna valores
Criar dois métodos com o mesmo nome, mas com assinaturas diferentes
Utilizar métodos privados em uma classe
Usar o mesmo método em múltiplas interfaces
7

Para acessar um método estático de uma classe, usamos:

A palavra-chave super
A palavra-chave this
Uma instância da classe
Um construtor vazio
O nome da classe diretamente
8

Qual das opções representa um exemplo de herança em Java?

abstract Aluno extends Pessoa
class Pessoa implements Aluno
class Aluno implements Serializable
class Aluno extends Pessoa
interface Aluno implements Pessoa
9

O modificador protected em Java significa:

O atributo ou método é acessível globalmente
O atributo ou método é acessível somente por classes base
O atributo ou método é acessível apenas pela própria classe
O atributo ou método é acessível por classes do mesmo pacote e classes derivadas
O atributo ou método não pode ser alterado
10

Qual é a palavra-chave usada para herdar uma classe em Java?

extends
inherits
super
parent
base
11

Um método emitirSom() é implementado em uma classe Animal e redefinido em Cachorro. O que isso representa?

Herança múltipla
Sobrecarga de métodos
Encapsulamento
Modularidade
Polimorfismo
12

Considere a classe Pessoa em Java. Qual declaração representa um construtor válido?

static Pessoa() {}
Pessoa() : nome("") {}
public static Pessoa() {}
private void Pessoa() {}
public Pessoa(String nome) {}
13

Uma classe Funcionario tem o método calcularSalario(). Uma classe Gerente herda Funcionario e adiciona um método bonificar(). Qual é a relação entre Funcionario e Gerente?

Composição
Polimorfismo
Encapsulamento
Associação
Herança
14

Uma classe abstrata FormaGeometrica tem um método abstrato calcularArea(). Qual das opções é verdadeira?

A classe pode ser instanciada diretamente
Classes filhas devem implementar calcularArea()
A classe não pode conter atributos
A classe não pode conter métodos concretos
Apenas métodos estáticos podem ser definidos na classe
15

Uma classe PagamentoOnline implementa a interface Pagavel, que tem o método processarPagamento(). Qual declaração é verdadeira?

PagamentoOnline deve implementar o método processarPagamento()
PagamentoOnline pode omitir a implementação de processarPagamento()
A interface Pagavel não pode conter métodos abstratos
Interfaces não são permitidas em POO
PagamentoOnline herda diretamente de Pagavel
16

Em Java, o método toString() é usado para:

Inicializar atributos de uma classe
Converter um objeto em uma string
Alterar a estrutura de classes herdadas
Comparar dois objetos
Calcular o tamanho de uma string
17

Por que utilizamos métodos getters e setters em vez de acessar diretamente os atributos de uma classe?

Para facilitar o uso de atributos estáticos na classe
Para evitar a necessidade de construtores na classe
Para reduzir a complexidade do código da classe
Para aumentar a performance do código ao acessar atributos
Para permitir controle sobre como os atributos são acessados e modificados
18

No sistema, você implementou uma classe base Produto e as subclasses Livro e Eletrônico. Qual vantagem o polimorfismo oferece nesse contexto?

Evitar a necessidade de construtores em subclasses
Tornar os atributos das subclasses acessíveis diretamente na classe base
Reduzir o uso de memória em programas orientados a objetos
Permitir tratar objetos de subclasses como objetos da classe base, simplificando o código
Aumentar a performance do código em tempo de execução
19

No Reino das Bibliotecas Encantadas, você é um programador responsável por criar um sistema mágico que exibe informações sobre os livros registrados na classe Livro. Para isso, você precisa sobrescrever o método toString() na classe para exibir o nome do livro e o preço. Qual das opções abaixo implementa corretamente a magia do método toString() na classe Livro?

@Override public String toString() { return "Livro: " + this.getNome() + " - R$" + this.getPreco(); }
public String toString() { return "Livro: " + this.nome + " - R$" + this.preco; }
@Override public void toString() { return "Livro: " + getNome() + " - R$" + getPreco(); }
@Override public String toString() { "Livro: " + getNome() + " - R$" + getPreco(); }
public void toString() { return "Livro: " + getNome() + " - R$" + getPreco(); }
20

Você foi contratado para criar um sistema que registra os monstros de um jogo. Cada monstro tem um nome, força e vida. O sistema deve proteger esses atributos para que só possam ser acessados e alterados através de métodos. Qual das alternativas define corretamente a classe Monstro com os métodos get e set para encapsular os atributos?

public class Monstro { public String nome; public int forca; public double vida; public void setNome(String nome) { this.nome = nome; } }
public class Monstro { private String nome; private int forca; private double vida; public void setNome(String nome) { this.nome = nome; } public String getNome() { return nome; } public void setForca(int forca) { this.forca = forca; } public int getForca() { return forca; } public void setVida(double vida) { this.vida = vida; } public double getVida() { return vida; } }
public class Monstro { private String nome; private int forca; private double vida; public void setAtributos(String n, int f, double v) { this.nome = n; this.forca = f; this.vida = v; } public String getAtributos() { return "Nome: " + nome + ", Força: " + forca + ", Vida: " + vida; } }
public class Monstro { private String nome; private int forca; private double vida; public void setNome() { this.nome = "Monstro"; } public int getForca() { return forca; } }
public class Monstro { private String nome; private int forca; private double vida; public void setNome(String n) { nome = n; } public String getNome() { return nome; } public void setForca(int f) { forca = f; } public double getForca() { return forca; } }
21

Você precisa criar uma classe Personagem para um jogo. A classe deve ter um construtor que inicialize os atributos nome e energia. Qual das alternativas implementa corretamente o construtor da classe?

public class Personagem { String nome; int energia; public Personagem(String nome, int energia) { this.nome = nome; this.energia = energia; } }
public class Personagem { String nome; int energia; public void Personagem(String nome, int energia) { this.nome = nome; this.energia = energia; } }
public class Personagem { String nome; int energia; public Personagem() { nome = "Sem Nome"; energia = 100; } }
public class Personagem { String nome; int energia; public void inicializar(String nome, int energia) { this.nome = nome; this.energia = energia; } }
public class Personagem { String nome; int energia; public void Personagem() { this.nome = "Sem Nome"; this.energia = 100; } }
22

Você é o programador-chefe do sistema que controla o Castelo dos Dragões. Para gerenciar os dragões cadastrados, você precisa conectar o sistema ao banco de dados dragao_db. O servidor do castelo está no endereço localhost, na porta 3306, e o usuário do banco é heroi com a senha espada123. Qual das opções conecta corretamente o sistema ao banco de dados para gerenciar os dragões?

public class ConexaoDragao { public static Connection conectar() throws SQLException { Connection conn = DriverManager.getConnection ("jdbc:mysql//localhost/dragao_db", "heroi", "espada123"); return conn; } }
public class ConexaoDragao { public static Connection conectar() throws SQLException { Connection conn = DriverManager.getConnection ("jdbc:mysql://localhost:3306/dragao_db", "heroi", "espada"); return conn; } }
public class ConexaoDragao { public static Connection conectar() throws SQLException { Connection conn = DriverManager.getConnection ("jdbc:mysql://localhost:3306/dragao_db", "heroi", "espada123"); return conn; } }
public class ConexaoDragao { public static Connection conectar() throws SQLException { Connection conn = DriverManager.getConnection ("jdbc:mysql://localhost/dragao_db", "heroi", "espada123"); return conn; } }
public class ConexaoDragao { public static Connection conectar() { Connection conn = DriverManager.getConnection ("jdbc:mysql://localhost:3306/dragao_db", "heroi", "espada123"); return conn; } }
23

No Reino dos Programadores, para que seu Eclipse IDE funcione corretamente com o Java Development Kit (JDK), você precisa configurar a variável de ambiente JAVA_HOME no sistema. Essa configuração é essencial para que o Eclipse saiba onde encontrar o JDK. Qual das opções a seguir configura corretamente a variável JAVA_HOME no sistema operacional?

Acesse o "Painel de Controle", procure "Configurações Avançadas do Sistema", clique em "Variáveis de Ambiente" e crie a variável JAVA_HOME apontando para: C:\Program Files\Java\jdk-XX Depois, adicione ao Path a seguinte entrada: %JAVA_HOME%\bin
Acesse o "Painel de Controle", procure "Configurações Avançadas do Sistema", clique em "Variáveis de Ambiente" e crie a variável JAVA_HOME apontando para: C:\Arquivos de Programas\Eclipse\jdk
No Prompt de Comando, digite o comando: set JAVA_HOME=C:\Program Files\Java\jdk-XX set PATH=%JAVA_HOME%\bin;%PATH%
Basta instalar o Eclipse na mesma pasta do JDK, e o Eclipse detectará automaticamente o JDK
No Prompt de Comando, digite o comando: set JAVA_HOME=C:\Arquivos de Programas\Eclipse\jdk set PATH=%JAVA_HOME%\bin;%PATH%
24

No Reino da Programação, o Guardião das Classes precisa de sua ajuda para criar um sistema que organize e exiba os atributos de uma classe chamada Tesouro. Cada tesouro possui os seguintes atributos: nome, tipo e valor. A missão é implementar corretamente o método toString() para listar as informações do tesouro de forma organizada. Qual das opções abaixo implementa corretamente o método toString() na classe Tesouro?

@Override public String toString() { return "Tesouro: " + nome + ", Tipo: " + tipo + ", Valor: R$" + valor; }
@Override public String toString() { return "Tesouro:\n" + "Nome: " + this.nome + "\n" + "Tipo: " + this.tipo + "\n" + "Valor: R$" + this.valor; }
@Override public String toString() { return "Tesouro -> Nome: " + nome + "; Tipo: " + tipo + "; Valor: " + valor + " moedas de ouro."; }
@Override public String toString() { return "Tesouro encontrado: " + this.getNome() + " (" + this.getTipo() + ") - R$" + this.getValor(); }
public void toString() { return "Tesouro: " + this.nome + ", Tipo: " + this.tipo + ", Valor: R$" + this.valor; }
25

Você foi contratado pelo Reino dos Magos do Código para criar uma classe chamada Feitico, que deve ter um método chamado executarFeitico(). Esse método retornará uma mensagem com o nome do feitiço e a quantidade de mana necessária para lançá-lo. Qual das opções abaixo implementa corretamente o método executarFeitico()?

public class Feitico { private String nome; private int mana; public String executarFeitico() { return "Feitiço: " + nome + ", Mana necessária: " + mana + " pontos"; } }
public class Feitico { private String nome; private int mana; public void executarFeitico() { return "Feitiço: " + nome + ", Mana: " + mana; }
public class Feitico { private String nome; private int mana; public void executarFeitico(String nome, int mana) { System.out.println("Feitiço: " + nome + ", Mana necessária: " + mana + " pontos"); } }
public class Feitico { private String nome; private int mana; public String executarFeitico() { System.out.println("Feitiço: " + nome + ", Mana necessária: " + mana + " pontos"); } }
public class Feitico { private String nome; private int mana; public void executarFeitico() { System.out.println("Feitiço lançado!"); } }
26

class Calculadora { public int somar(int a, int b) { return a + b; } public double somar(double a, double b) { return a + b; } } O que será impresso pelo seguinte trecho de código? Calculadora calc = new Calculadora(); System.out.println(calc.somar(5, 7)); System.out.println(calc.somar(5.0, 7.0));

12 e erro de compilação
12.0 e 12.0
Erro de compilação em ambos os casos
12 e 12.0
Nenhuma saída
27

Considere as classes e métodos abaixo: class Animal { public void fazerSom() { System.out.println("Som genérico de animal"); } } class Cachorro extends Animal { @Override public void fazerSom() { System.out.println("Latido"); } } Qual será a saída do seguinte código? Animal a = new Cachorro(); a.fazerSom();

"Latido"
Erro em tempo de execução
"Som genérico de animal"
Nenhuma saída
Erro de compilação
28

class Calculadora { public int somar(int a, int b) { return a + b; } public void somar(int a, int b) { System.out.println(a + b); } } Qual erro ocorrerá neste código?

Exibe os resultados normalmente.
Erro em tempo de execução devido a conflitos.
Erro de compilação por ambiguidade nos métodos.
Funciona corretamente.
Erro de compilação por retorno incompatível.
29

Qual das opções abaixo lista corretamente as vantagens de usar Java?

1. É uma linguagem de baixo nível focada apenas em hardware. 2. Requer acesso direto à memória. 3. Não possui bibliotecas padrão para aplicações modernas.
1. É uma linguagem compilada apenas para Windows. 2. Oferece suporte limitado à Orientação a Objetos. 3. Depende de um ambiente gráfico específico.
1. É uma linguagem interpretada, o que a torna mais lenta. 2. Não possui suporte à Orientação a Objetos. 3. Não é multiplataforma.
1. É uma linguagem multiplataforma graças à JVM (Java Virtual Machine). 2. Possui suporte completo à Orientação a Objetos. 3. É robusta, com gerenciamento automático de memória (Garbage Collection).
1. Só pode ser usada para desenvolvimento web. 2. Não é segura para aplicações críticas. 3. É de código fechado.
30

Qual o modificador de acesso padrão em Java, caso nenhum seja especificado?

public
static
protected
package-private
private
31

O que significa a palavra-chave final aplicada a uma classe?

A classe não pode ser herdada
A classe não pode ter métodos sobrecarregados
A classe não pode ser instanciada
A classe não pode conter métodos abstratos
Os atributos da classe não podem ser alterados
32

Qual é a principal diferença entre uma interface e uma classe abstrata em Java?

Interfaces possuem construtores, enquanto classes abstratas não possuem
Classes abstratas não permitem métodos concretos, enquanto interfaces permitem
Interfaces não podem conter atributos, enquanto classes abstratas podem
Interfaces permitem múltipla herança, enquanto classes abstratas não
Classes abstratas podem ser instanciadas, enquanto interfaces não podem
33

Qual o papel do método main em um programa Java?

Garantir que os métodos sejam chamados corretamente
Gerenciar a memória alocada para os objetos
Servir como ponto de entrada para a execução do programa
Inicializar os atributos da classe
Controlar o fluxo de execução de métodos
34

Qual das opções é verdadeira sobre o gerenciamento de memória em Java?

Java não possui gerenciamento automático de memória
O programador deve liberar memória utilizando o comando free
Java utiliza alocação manual de memória
O Garbage Collector é responsável por liberar memória automaticamente
O Garbage Collector é desativado por padrão
35

O que acontece se nenhum construtor for definido em uma classe Java?

Um construtor padrão vazio será automaticamente fornecido pelo compilador
A classe não pode ser instanciada
A classe herda o construtor de sua classe base
A classe só poderá ser instanciada por classes derivadas
Um erro de compilação será gerado
36

Qual palavra-chave é usada para chamar o construtor da classe base em Java?

base
extends
parent
super
this
37

class Produto { private String nome; public Produto criarProduto(String nome) { this.nome = nome; return this; } } Qual o erro no código acima?

O atributo nome precisa ser inicializado diretamente no construtor.
O método criarProduto deveria ser estático.
Não é possível usar this em métodos não estáticos.
Nenhum erro; o código compila e executa.
Um construtor não pode retornar um valor.
Quizur Logo

Siga nossas redes sociais:

Incorporar

Para incorporar este quiz ao seu site copie e cole o código abaixo.