Pular para o conteúdo principal

Questão de Programação — JEE (Java Enterprise Edition) — Quadrix 2025

ProgramaçãoJEE (Java Enterprise Edition)
Código
qg603656
Banca
Quadrix
Órgão
SEDF
Ano
2025
Nível
Superior
Cargo
Professor de Educação Básica: Informática
O professor André ministra uma disciplina de Desenvolvimento Web em Java EE para alunos de nível superior. Ele solicita que os estudantes implementem um sistema simplificado de cadastro de produtos, utilizando J2EE, que inclui tipos de dados elementares e estruturados, métodos (funções e procedimentos) e estruturas de controle de fluxo. Parte do código desenvolvido é apresentada a seguir.


public class Produto {
    private String nome;
    private int quantidade;
    private double preco;
 
public Produto(String nome, int quantidade, double preco) {
    this.nome = nome;
    this.quantidade = quantidade;
    this.preco = preco;
 }

public double calcularValorTotal() {
 return quantidade * preco;
 }

  public void aplicarDesconto(double percentual) {
      if(percentual > 0 & percentual < 100) {
        preco ‑= preco * percentual / 100;
     } else {
         System.out.println(“Percentual inválido”);
   }
 }

  public static void main(String[] args) {
       Produto p = new Produto(“Notebook”, 5, 4500.00);
       p.aplicarDesconto(10);
       System.out.println(“Valor total: “ + p.calcularValorTotal());
    }
}
A respeito do código Java apresentado, julgue o item seguinte. A linha Produto p = new Produto(“Notebook”, 5, 4500.00); utiliza uma variável local do tipo estruturado (classe Produto) e inicializa um objeto com dados específicos.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Java: variáveis locais e tipos estruturados

Gabarito: C — CERTO. A linha Produto p = new Produto("Notebook", 5, 4500.00); declara uma variável local p cujo tipo é a classe Produto — um tipo estruturado (definido pelo programador, composto por atributos e métodos) — e a inicializa com um objeto criado pelo construtor, passando os valores específicos "Notebook", 5 e 4500.00. A afirmação está correta.

Em Java, os tipos de dados se dividem em duas grandes categorias: tipos primitivos (elementares) e tipos de referência (estruturados). Os primitivos são aqueles já embutidos na linguagem, como int, double, boolean, char, byte, short, long e float — eles armazenam diretamente o valor. Já os tipos de referência apontam para um objeto na memória (heap) e incluem as classes, interfaces, arrays e enums. A classe Produto, definida no código, é um tipo estruturado porque agrupa dados (atributos nome, quantidade, preco) e comportamentos (métodos calcularValorTotal(), aplicarDesconto()).

A linha em questão faz duas coisas simultaneamente: declara a variável local p (dentro do método main, portanto com escopo local) e a inicializa com uma nova instância da classe Produto. O operador new aloca memória para o objeto e chama o construtor Produto(String, int, double), que recebe os argumentos "Notebook", 5 e 4500.00 e os atribui aos campos do objeto recém-criado. Assim, p passa a referenciar um objeto concreto, com estado específico — exatamente o que o item descreve.

A pegadinha que a banca poderia explorar aqui é confundir "variável local" com "variável de instância" (atributo da classe) ou achar que p é um tipo primitivo. Mas p está declarada dentro do método main, logo é local; e seu tipo é Produto, uma classe — portanto, estruturado. O item está tecnicamente preciso em todos os termos.

Guarde a distinção entre declaração (criar a variável com seu tipo) e inicialização (atribuir um valor/objeto a ela) — é nela que o item se ancora, e é o critério que você deve aplicar para julgar a assertiva.

Item — ✅ CERTO

A afirmação está correta. A variável p é declarada dentro do método main, o que a caracteriza como variável local (em oposição a um atributo da classe). Seu tipo é Produto, uma classe definida pelo programador — um tipo estruturado, pois encapsula múltiplos campos (String nome, int quantidade, double preco) e métodos. A inicialização ocorre com new Produto("Notebook", 5, 4500.00), que invoca o construtor e cria um objeto com os dados específicos fornecidos. Todos os elementos da assertiva — variável local, tipo estruturado e inicialização com dados específicos — estão presentes e corretos.

Gabarito: C — CERTO.

Link permanente: /questoes/qg603656