
Quiz sobre POO(Java)
Algumas perguntas para reforçar a compreensão do assunto de POO
Anúncios
0
0
0
Anúncios
1
O que é uma classe em POO?
Um conjunto de dados e métodos encapsulados
Uma função que realiza operações matemáticas
Um tipo de banco de dados relacional
Uma estrutura para armazenar listas em JavaScript
Uma interface entre o usuário e o sistema
2
Qual a principal finalidade do construtor em uma classe?
Alterar métodos de classes herdadas
Criar métodos sobrecarregados
Inicializar atributos de um objeto
Criar atributos estáticos
Remover objetos da memória
3
O que é um objeto em POO?
Um módulo externo importado
Um tipo de dado primitivo
Uma função encapsulada
Uma instância de uma classe
Uma variável global de um programa
4
Em POO, o que significa encapsulamento?
Armazenar dados em arrays multidimensionais
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
5
O que define polimorfismo em Java?
A utilização de construtores com múltiplos parâmetros
Atribuir múltiplas classes a um único objeto
Capacidade de uma classe derivada sobrescrever métodos da classe base
Todos os métodos serem públicos
Criar objetos de várias classes em um único programa
6
Qual das opções é um exemplo de sobrecarga de métodos?
Usar o mesmo método em múltiplas interfaces
Utilizar métodos privados em uma classe
Criar um método que não retorna valores
Criar um método com o mesmo nome em classes diferentes
Criar dois métodos com o mesmo nome, mas com assinaturas diferentes
7
Para acessar um método estático de uma classe, usamos:
A palavra-chave this
Uma instância da classe
A palavra-chave super
Um construtor vazio
O nome da classe diretamente
8
Qual das opções representa um exemplo de herança em Java?
class Pessoa implements Aluno
interface Aluno implements Pessoa
class Aluno extends Pessoa
class Aluno implements Serializable
abstract Aluno extends Pessoa
9
O modificador protected em Java significa:
O atributo ou método não pode ser alterado
O atributo ou método é acessível somente por classes base
O atributo ou método é acessível globalmente
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
10
Qual é a palavra-chave usada para herdar uma classe em Java?
inherits
extends
parent
super
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
Polimorfismo
Modularidade
Encapsulamento
12
Considere a classe Pessoa em Java. Qual declaração representa um construtor válido?
public Pessoa(String nome) {}
private void Pessoa() {}
static Pessoa() {}
public static Pessoa() {}
Pessoa() : 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?
Polimorfismo
Herança
Associação
Encapsulamento
Composição
14
Uma classe abstrata FormaGeometrica tem um método abstrato calcularArea(). Qual das opções é verdadeira?
A classe pode ser instanciada diretamente
A classe não pode conter atributos
Classes filhas devem implementar calcularArea()
Apenas métodos estáticos podem ser definidos na classe
A classe não pode conter métodos concretos
15
Uma classe PagamentoOnline implementa a interface Pagavel, que tem o método processarPagamento(). Qual declaração é verdadeira?
PagamentoOnline herda diretamente de Pagavel
Interfaces não são permitidas em POO
A interface Pagavel não pode conter métodos abstratos
PagamentoOnline pode omitir a implementação de processarPagamento()
PagamentoOnline deve implementar o método processarPagamento()
16
Em Java, o método toString() é usado para:
Inicializar atributos de uma classe
Comparar dois objetos
Alterar a estrutura de classes herdadas
Converter um objeto em uma string
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 permitir controle sobre como os atributos são acessados e modificados
Para aumentar a performance do código ao acessar atributos
Para reduzir a complexidade do código da classe
Para evitar a necessidade de construtores na classe
Para facilitar o uso de atributos estáticos na classe
18
No sistema, você implementou uma classe base Produto e as subclasses Livro e Eletrônico. Qual vantagem o polimorfismo oferece nesse contexto?
Reduzir o uso de memória em programas orientados a objetos
Tornar os atributos das subclasses acessíveis diretamente na classe base
Evitar a necessidade de construtores em subclasses
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 {
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;
}
}
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 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 {
public String nome;
public int forca;
public double vida;
public void setNome(String nome) {
this.nome = nome;
}
}
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 void inicializar(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 Personagem() {
this.nome = "Sem Nome";
this.energia = 100;
}
}
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(String nome, int energia) {
this.nome = nome;
this.energia = energia;
}
}
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", "espada123");
return conn;
}
}
public class ConexaoDragao {
public static Connection conectar() {
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:3306/dragao_db", "heroi", "espada");
return conn;
}
}
public class ConexaoDragao {
public static Connection conectar() throws SQLException {
Connection conn = DriverManager.getConnection
("jdbc:mysql//localhost/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?
No Prompt de Comando, digite o comando:
set JAVA_HOME=C:\Program Files\Java\jdk-XX
set PATH=%JAVA_HOME%\bin;%PATH%
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
Basta instalar o Eclipse na mesma pasta do JDK, e o Eclipse detectará
automaticamente o JDK
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
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 encontrado: " + this.getNome() + " (" + this.getTipo() + ") - R$" +
this.getValor();
}
@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;
}
public void toString() {
return "Tesouro: " + this.nome + ", Tipo: " + this.tipo + ", Valor: R$" + this.valor;
}
@Override
public String toString() {
return "Tesouro -> Nome: " + nome + "; Tipo: " + tipo + "; Valor: " + valor + "
moedas de ouro.";
}
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() {
System.out.println("Feitiço: " + nome + ", Mana necessária: " + mana + "
pontos");
}
}
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() {
System.out.println("Feitiço lançado!");
}
}
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");
}
}
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
Erro de compilação em ambos os casos
12 e 12.0
12.0 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 de compilação
"Som genérico de animal"
Nenhuma saída
Erro em tempo de execuçã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?
Erro em tempo de execução devido a conflitos.
Funciona corretamente.
Erro de compilação por retorno incompatível.
Exibe os resultados normalmente.
Erro de compilação por ambiguidade nos métodos.
29
Qual das opções abaixo lista corretamente as vantagens de usar Java?
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.
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.
30
Qual o modificador de acesso padrão em Java, caso nenhum seja especificado?
private
public
static
package-private
protected
31
O que significa a palavra-chave final aplicada a uma classe?
A classe não pode ser herdada
A classe não pode ser instanciada
A classe não pode ter métodos sobrecarregados
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?
Classes abstratas não permitem métodos concretos, enquanto interfaces
permitem
Interfaces permitem múltipla herança, enquanto classes abstratas não
Interfaces não podem conter atributos, enquanto classes abstratas podem
Classes abstratas podem ser instanciadas, enquanto interfaces não podem
Interfaces possuem construtores, enquanto classes abstratas não possuem
33
Qual o papel do método main em um programa Java?
Gerenciar a memória alocada para os objetos
Garantir que os métodos sejam chamados corretamente
Inicializar os atributos da classe
Servir como ponto de entrada para a execução do programa
Controlar o fluxo de execução de métodos
34
Qual das opções é verdadeira sobre o gerenciamento de memória em Java?
O Garbage Collector é desativado por padrão
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
35
O que acontece se nenhum construtor for definido em uma classe Java?
A classe só poderá ser instanciada por classes derivadas
Um construtor padrão vazio será automaticamente fornecido pelo compilador
A classe herda o construtor de sua classe base
A classe não pode ser instanciada
Um erro de compilação será gerado
36
Qual palavra-chave é usada para chamar o construtor da classe base em Java?
super
base
extends
this
parent
37
class Produto { private String nome; public Produto criarProduto(String nome) { this.nome = nome; return this; } } Qual o erro no código acima?
Não é possível usar this em métodos não estáticos.
O método criarProduto deveria ser estático.
O atributo nome precisa ser inicializado diretamente no construtor.
Nenhum erro; o código compila e executa.
Um construtor não pode retornar um valor.